数据库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  分别建立索引









  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值