mysql - 数据库like优化或设计
巴扎黑
巴扎黑 2017-04-17 11:39:45
0
1
228

情况如下:
设备表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%'可以

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!