数据库like优化或设计

发布于 2022-08-29 20:44:20 字数 577 浏览 16 评论 0

情况如下:
设备表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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恏ㄋ傷疤忘ㄋ疼 2022-09-05 20:44:20

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文