| 失效模式 | 優化寫法 | 原理 |
|---|---|---|
WHERE YEAR(dt) < 2001 | WHERE dt < '2001-01-01' | 函數阻斷索引 |
WHERE amt/7 < 24 | WHERE amt < 168 | 運算阻斷索引 |
WHERE name LIKE 'MySQL%' | WHERE name >= 'MySQL' AND name < 'MySQM' | 前綴 LIKE 轉範圍 |
| 隱式類型轉換 | 參數化查詢/顯式 CAST | 轉換導致全掃 |
數據文件放共享 NFS(NAS),實現多節點訪問同一數據目錄;PID 與 InnoDB 事務日誌必須放本地盤,保證啟停正常。
/etc/my.cnf
[mysqld]
datadir = /data/mysqldata # NFS 掛載點
innodb_data_home_dir = /usr/local/mysql/data # 本地盤
innodb_log_group_home_dir = /usr/local/mysql/data # 本地盤
innodb_data_file_path = ibdata1:50M;ibdata2:50M:autoextend
/etc/rc.d/init.d/mysqld
pid_file = /usr/local/mysql/data/mysqlmanager-`hostname`.pid
server_pid_file = /usr/local/mysql/data/`hostname`.pid
mount 10.4.66.251:/data /datamkdir /data/mysqldata./scripts/mysql_install_db --user=mysqlchown -R mysql.mysql /data/mysqldata/八大妙手覆蓋「微觀 SQL/索引/字段」到「宏觀架構/存儲/HA」。性能優化無銀彈,需根據業務訪問模式、數據增長、可用性要求,在成本與收益間動態平衡。