MySQL 性能優(yōu)化常用手段

  1. 在/etc/my.cnf配置MySQL記錄慢查詢?nèi)罩荆?br> [mysqld] slow_query_log=1 long_query_time=0.5 log_queries_not_using_indexes=1

  2. 查看慢查詢的相關(guān)配置:
    mysql> show variables like '%slow%';

  3. 使用mysqldumpslow分析慢查詢?nèi)罩荆?br> 查看該命令的可用選項(xiàng):
    mysqldumpslow -h
    找出平均查詢時(shí)間最長(zhǎng)的5條記錄:
    mysqldumpslow slow_query_log_file -s at -t 5

  4. EXPLAIN分析
    table: 顯示這一行的數(shù)據(jù)是關(guān)于哪張表的
    type: 顯示連接是使用了何種類型,從最好到最差的連接類型為: const(主鍵查找)、eq_reg(唯一索引、主鍵范圍查找)、ref(基于索引查找)、range(基于索引范圍查找)、index(對(duì)索引進(jìn)行掃描)、all
    possible_keys: 該表中可能會(huì)使用的索引
    key: 實(shí)際使用的索引
    key_len: 索引長(zhǎng)度(越短越好)
    ref: 顯示索引的哪一列被使用了(如果可能的話,是一個(gè)常數(shù))
    rows: MySQL認(rèn)為需要檢查表的數(shù)據(jù)的行數(shù)
    extra: 當(dāng)該字段出現(xiàn)如下值: 1、Using filesort; 2、Using temporary 時(shí),表示SQL語(yǔ)句需要優(yōu)化。

  5. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)優(yōu)化:
    1,使用可以存儲(chǔ)下數(shù)據(jù)的最小數(shù)據(jù)類型。
    2,使用簡(jiǎn)單的數(shù)據(jù)類型(盡量使用int而不是varchar)。
    3,受限于InnoDB的存儲(chǔ)特性,盡可能的使用NOT NULL定義字段。
    4,為了提高查詢效率,減少查詢時(shí)需要掃描的范圍,盡量少用textblob類型的字段,如果要用,盡量把 textblob 類型的字段放到單獨(dú)的表中。

  6. 表的垂直拆分原則:
    1,把不常用的字段單獨(dú)放到一個(gè)表中。
    2,把大的字段單獨(dú)放到一個(gè)表中。
    3,把經(jīng)常一起使用的字段放到一個(gè)表中。

percona-toolkit: 提供了很多實(shí)用的工具
檢查重復(fù)索引: pt-duplicate-key-checker -uroot -hlocalhost
慢查詢分析: pt-query-digest slow_query_log_file

  1. innodb_stats_on_metadata 當(dāng)啟用此變量時(shí)(這是默認(rèn)情況,與創(chuàng)建該變量之前相同),InnoDB在元數(shù)據(jù)語(yǔ)句執(zhí)行期間更新統(tǒng)計(jì)數(shù)據(jù),例如SHOW TABLE STATUS或SHOW INDEX,又或者當(dāng)訪問(wèn)INFORMATION_SCHEMA的表TABLES或STATISTICS時(shí)。 (這些更新與ANALYZE TABLE時(shí)發(fā)生的事情類似。)當(dāng)禁用時(shí),在這些操作期間InnoDB不會(huì)更新統(tǒng)計(jì)信息。禁用此變量可以提高有大量的表或索引的架構(gòu)(schemas) 的訪問(wèn)速度。它也可以提高涉及InnoDB表的查詢的執(zhí)行計(jì)劃的穩(wěn)定性。
    set global innodb_stats_on_metadata=off;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容