資料庫sql的優化問題的面試題
阿新 • • 發佈:2019-02-09
想一下這個道面試題怎麼做
有一張user表有1000萬條資料,請為下面的sql提供優化建議?
欄位分別為: 主鍵id,使用者id,姓名,性別
select * from user where 姓名 like '%張%' order by 主鍵id limit 0,100
提示:一張表可以建多少個主鍵?
可以建3~4個索引。
正確答案:
*換成 對應的欄位
姓名可以加索引,%如果姓名是張開頭可以去掉前面的%
注:where 姓名 like '%張%' 這樣的前後都有模糊搜尋是加不了索引的
下面內容來自百度sql的多like優化問題:select * from table where facctcode = '233[深圳]' and facctattr like '投資%' and facctattr not like '%溢折價%' and facctattr not like '%估值增值%' 請問這種語句有辦法優化麼,因為資料庫方面用的有sqlserver,oracle,db2 所以儘量使用sql...facctcode = '233[深圳]' 可以使用索引,建立索引
facctattr like '投資%' 可以使用索引,建立索引
facctattr not like '%溢折價%' 無法使用索引
facctattr not like '%估值增值%' 無法使用索引
也就是說,可以對 列 facctcode 和 facctattr 分別建立索引