1. 程式人生 > >sql優化之隱式轉換

sql優化之隱式轉換

大家知道資料庫為了提高查詢速度 增加索引是必不可少的 但是有些時候即使你加了索引也不定有效果,索引的使用其實和你的sql語句有很大得關係,例如我們不能夠在索引上面增加表示式,或者 索引上有null 值 等這些都會讓sql放棄索引進行全表掃描,不過有時候我們會發現一個很奇怪的問題:明明sql 符合規範為啥還是這全表掃描

 比如我曾經遇到果一個問題 隱式轉換引起得問題 不說了  直接上程式碼

    

       有沒有看到全表二個表全表掃描 為什麼呢?很簡單得sql   為什麼不走索引呢.

      我想了很久 就想到有一種可能當我們sql 欄位型別不一樣會使用隱式和轉換 來看看是不是這個情況 看看 join 得2個欄位

    

  二個表userid 欄位不一樣 一個 nunber 一個 varchar 發生了隱式轉換 

那我們怎麼優化呢 很簡單 把他們得欄位搞成一個型別就好了


好了 這樣 表都走索引了 ,當資料量特別大時候 我們sql得優勢才會顯現出來。

        下一章我會更新一下 當資料量非常大,請求量很大的情況下 怎麼能夠減少伺服器壓力 讓他不宕機!