首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL優化八招(三):範圍查詢替代LIKE、避免隱式類型轉換

     編輯:MySQL 資料庫相關知識

招數7:用範圍查詢代替前綴LIKE

原查詢:

SELECT * FROM books WHERE name LIKE 'MySQL%';

優化為:

SELECT * FROM books WHERE name >= 'MySQL' AND name < 'MySQM';

原理:字符串按字典序排列,'MySQL' ~ 'MySQM'精確覆蓋所有MySQL*前綴,**可用索引範圍掃描**,避免LIKE通配符導致的全索引掃描。

招數8:防隱式類型轉換失效索引

WHERE varchar_col = 123會觸發列隱式轉數字,**索引失效**。**應用層保證類型一致**,或顯式CAST。MySQL 8.0+嚴格模式下會報警,舊版本靜默失效,極難排查。

系列總結

  1. 選最小充足列類型
  2. JOIN代替子查詢
  3. UNION代替臨時表
  4. 事務/鎖表權衡
  5. 外鍵保證關聯完整性
  6. 索引建在JOIN/WHERE/ORDER BY列
  7. 範圍查詢替代前綴LIKE
  8. 杜絕隱式類型轉換
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved