mysql - 数据库like优化或设计
巴扎黑
巴扎黑 2017-04-17 11:39:45
[MySQL讨论组]

情况如下:
设备表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该如何优化呢?索引等?或数据库优化?或操作系统这改为别的形式存?

巴扎黑
巴扎黑

全部回复(1)
怪我咯

可以考虑将操作系统作为一个维度建立一张表。这样不用 like,直接where 就可以了。
%search% 这种形式的like本身效率就很低,不能走索引。 like 'search%'可以

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号