数据库sql的优化问题的面试题

想一下这个道面试题怎么做

有一张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  分别建立索引









阅读更多

没有更多推荐了,返回首页