專案中使用了大量的sql,對於查詢sql,如果沒有使用索引會對查詢速度造成很大的影響,例如如下sql
select a.name,b.id from tablea a join tableb b on a.id = b.other_id where a.name = 'test' and b.pin = '123' and a.state = '1'
如果沒有對錶tablea使用索引,那麼查詢方式使用的是全表掃瞄,當資料量過大時,這種情況下查詢會非常慢,為了解決這個問題,最簡單也是最難的一種方法是增加索引:
tableaindex name,state
tablebindex pin
通過建立索引,那麼查詢使用的是索引方式,所以會比原先快
注:這裡之所以說新增索引是一種最簡單也是最難的方法,因為這種方法實踐後,能夠明顯看到效果,但索引的氾濫會導致資料庫整體占用的記憶體增大,維護索引的成本會大於所帶來的效益,切記索引不可亂用,且最好在一開始建表的時候就建立索引,不要在表中有資料再建立索引,這樣可以降低索引維護的成本
SQL優化之索引使用
最近找工作,遇到乙個面試題 sql哪些關鍵字會忽略索引?因為之前沒這方面的經驗,當時懵逼了,隨便扯了一點。最終有沒能通過面試很遺憾。我們都知道對查詢進行優化,應盡量避免全表掃瞄,多使用索引,首先應考慮在 where 及 order by 涉及的列上建立索引。不過應該注意兩點 1 並不是所有索引對查詢...
SQL優化 索引優化
一 發現哪些sql語句有效能問題 開啟mysql慢查詢日誌對sql語句進行監控 show variables like slow query log 檢視是否開啟慢查詢日誌 set global slow query log on 開啟慢查詢日誌 set global log queries not...
SQL優化(SQL 索引)
檢視表定義 show create table users 檢視表的索引 show index from users 你要獲取第乙個表的所有資訊,你說全表掃瞄快呢還是索引掃瞄快呢?所以當你查詢庫 包括left join中的臨時庫 的所有資訊時,資料庫會選擇最優方法 全表掃瞄!s表dept id na...