資料庫sql的優化問題的面試題

aFakeProgramer發表於2018-04-16

想一下這個道面試題怎麼做

有一張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...
  1. facctcode = '233[深圳]'    可以使用索引,建立索引

  2. facctattr like '投資%'        可以使用索引,建立索引

  3. facctattr not like '%溢折價%'   無法使用索引

  4. facctattr not like '%估值增值%'  無法使用索引

也就是說,可以對 列   facctcode  和  facctattr  分別建立索引









相關文章