一些Mysql的最佳化經驗

來源:互聯網
上載者:User
mysql|最佳化  一些 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 欄位長度說明
TINYINT 1 位元組 SMALLINT 2 位元組
MEDIUMINT 3 位元組 INTEGER: 4 位元組
BIGINT 8 位元組 DOUBLE 8 位元組
FLOAT(X) X <=24: 4 位元組
X > 24: 8 位元組
DECIMAL(M,D) M<D: D+2 位元組
M>=D: M 位元組
DATE 3 位元組 DATETIME 8 位元組
TIMESTAMP 4 位元組 TIME 4 位元組
YEAR 1 位元組    
CHAR(M) M 位元組 VARCHAR(M) 值長度 + 1 位元組
TINYBLOB 值長度 + 1 位元組 TINYTEXT 值長度 + 1 位元組
BLOB 值長度 + 2 位元組 TEXT 值長度 + 2 位元組
MEDIUMBLOB 值長度 + 3 位元組 MEDIUMTEXT 值長度 + 3 位元組
LONGBLOB 值長度 + 4 位元組 LONGTEXT 值長度 + 4 位元組
ENUM 1 或 2 位元組
取決於枚舉值數
SET 1,2,3,4, 8
取決於成員數量


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.