MySQL 查詢優化簡記

2021-09-06 13:45:26 字數 351 閱讀 2774

今天嘗試對一張mysql表做查詢優化, 500w資料

但是發現加了索引比不加索引使用全表掃瞄還慢, 上網查, 據說是因為需要回表, 因為沒有用到 using index(覆蓋索引), 而回表查詢是隨機讀

1. 如果回表查詢的資料是在磁碟, 隨機讀將會非常慢, 導致使用索引以後的查詢速度是30s左右

2. 如果回表查詢的資料實在記憶體, 則會比全表掃瞄快

我這裡全表掃瞄的時間是3s

如果我將查詢中所有的字段都加入索引, 則會使用覆蓋索引(using index), 此時查詢時間縮減為 0.5s

但是這樣有個很大限制, 就是查詢的字段必須全都在索引中, 否則不會使用覆蓋索引, 並且, 索引將會變得非常大

mysql 效能優化簡述

用 explain 分析sql語句。使用max 函式時,給max的字段加索引來優化 把子查詢優化為連表查詢,但要注意有重複資料 優化limit技巧 1.使用有索引的列或主鍵進行order by 2.記錄上一次返回的最大id用where id last max id 來過濾資料 關於索引欄位的優化 出...

mysql效能優化簡書 mysql 效能優化

1 伺服器層面 引數配置優化 減少客戶端使用連線數 可考慮使用快取 2 架構層面 讀寫分離 分庫 分表 分片 3 業務sql層面 檢視慢查詢日誌 sql優化 show variables like slow query 預設關閉 檢視日誌路徑 show variables like long que...

mysql效能優化簡書 MySQL效能優化

1 合理的建立及使用索引,索引不宜過多,過多的索引會占用更多的空間,而且每次增 刪 改操作都會重建索引。2 合理的冗餘字段 盡量建一些大表,考慮資料庫的三正規化和業務設計的取捨 3 select語句中盡量不要使用 count 從表中讀取越多的資料,查詢會變得更慢,因為它會增加了磁碟操作時間和資料網路...