想一下这个道面试题怎么做
有一张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 分别建立索引