国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

一些 Mysql 的優化經驗

2024-07-24 12:55:22
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

一些 mysql 的優化經驗

  1. 從數據庫結構做起
    1. 字段類型的定義時遵循以下規則:
      1. 選用字段長度最小
      2. 優先使用定長型
      3. 盡可能的定義 "not null"
      4. 數值型字段中避免使用 "zerofill"
      5. 如果要儲存的數據為字符串, 且可能值已知且有限, 優先使用 enum 或 set
    2. 索引的優化至關重要(以下如果沒有特殊說明, 均指查詢密集的情況)
      1. 被索引的字段的長度越小, 該索引的效率越高
      2. 被索引的字段中, 值的重復越少, 該索引的效率越高
      3. 查詢語句中, 如果使用了 "group" 子句, 根據其中字段出現的先后順序建立多字段索引
      4. 查詢語句中, 如果使用了 "distinct", 根據其中字段出現的先后順序建立多字段索引
      5. "where" 子句中, 出現對同一表中多個不同字段的 "and" 條件時, 按照字段出現的先后順序建立多字段索引
      6. "where" 子句中, 出現對同一表中多個不同字段的 "or" 條件時, 對重復值最少的字段建立單字段索引
      7. 進行 "內/外連接" 查詢時, 對 "連接字段" 建立索引
      8. 對 "主鍵" 的 "unique" 索引 毫無意義, 不要使用
      9. 被索引字段盡可能的使用 "not null" 屬性
      10. 對寫入密集型表, 盡量減少索引, 尤其是 "多字段索引" 和 "unique" 索引
  2. 查詢語句的優化
    1. 多多利用 "explain" 查詢索引使用情況, 以便找出最佳的查詢語句寫法和索引設置方案
    2. 慎用 "select *", 查詢時只選出必須字段
    3. 查詢使用索引時, 所遍歷的索引條數越少, 索引字段長度越小, 查詢效率越高 (可使用 "explain" 查詢索引使用情況)
    4. 避免使用 mysql 函數對查詢結果進行處理, 將這些處理交給客戶端程序負責
    5. 使用 "limit" 時候, 盡量使 "limit" 出的部分位于整個結果集的前部, 這樣的查詢速度更快, 系統資源開銷更低
    6. 在 "where" 子句中使用多個字段的 "and" 條件時, 各個字段出現的先后順序要與多字段索引中的順序相符
    7. 在 "where" 子句 中使用 "like" 時, 只有當通配符不出現在條件的最左端時才會使用索引
    8. 在 mysql 4.1 以上版本中, 避免使用子查詢, 盡量使用 "內/外連接" 實現此功能
    9. 減少函數的使用, 如果可能的話, 盡量用單純的表達式來代替
    10. 避免在 "where" 子句中, 對不同字段進行 "or" 條件查詢, 將其拆分成多個單一字段的查詢語句效率更高


附: mysql 字段長度說明表
mysql 字段長度說明
tinyint1 字節smallint2 字節
mediumint3 字節integer:4 字節
bigint8 字節double8 字節
float(x)x <=24: 4 字節
x > 24: 8 字節
decimal(m,d)m<d: d+2 字節
m>=d: m 字節
date3 字節datetime8 字節
timestamp4 字節time4 字節
year1 字節  
char(m)m 字節varchar(m)值長度 + 1 字節
tinyblob值長度 + 1 字節tinytext值長度 + 1 字節
blob值長度 + 2 字節text值長度 + 2 字節
mediumblob值長度 + 3 字節mediumtext值長度 + 3 字節
longblob值長度 + 4 字節longtext值長度 + 4 字節
enum1 或 2 字節
取決于枚舉值數
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 布尔津县| 获嘉县| 西乡县| 白山市| 临泉县| 巴塘县| 通河县| 寻乌县| 儋州市| 余姚市| 伊宁县| 梨树县| 博兴县| 泰兴市| 鄢陵县| 丽江市| 项城市| 洞口县| 自贡市| 浠水县| 咸丰县| 石首市| 崇信县| 赫章县| 云霄县| 昔阳县| 保靖县| 都江堰市| 塘沽区| 射阳县| 巴彦淖尔市| 鲜城| 侯马市| 辽阳市| 海伦市| 颍上县| 崇州市| 温泉县| 扬州市| 义乌市| 浙江省|