数据库like优化或设计
情况如下:
设备表device、设备对应驱动各版本表driver
不确定每个版本所允许运行的操作系统,我这想的是操作系统存为win7_32/win7_64/win8_32这形式
表:http://ww1.sinaimg.cn/large/005vduMMgw1ekkf8s065ij311t0iudjd.jpg
假如要查询某设备(d_id=5)下win7_32操作系统的驱动
select * from driver where d_id=5 and dr_os like "%win7_32%"
假如要查询某设备(d_id=6)下win7_64操作系统的驱动
select * from driver where d_id=6 and dr_os like "%win7_64%"
但like看explain是搜索了所有行了。。。如果记录多的话,会出问题了。。
所以这想问下,这like该如何优化呢?索引等?或数据库优化?或操作系统这改为别的形式存?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以考虑将操作系统作为一个维度建立一张表。这样不用
like
,直接where
就可以了。%search%
这种形式的like本身效率就很低,不能走索引。like 'search%'
可以