我对索引的试验并不是很充实,这就是为什么我会问这个愚蠢的问题。我到处搜索,但我没有得到明确的答案。
我将有一个表格items
,其中包含以下列:id
,name
,category
,price
这将是3个索引:
id
- 主要索引name
- FullText Index category,price
- 综合指数我估计将来我的桌子会变成700.000-1.000.00行。
我需要fulltext
搜索name
,其中category
是指定的类别,按price
排序。
所以我的查询是这样的:
SELECT * FROM items
WHERE MATCH(name) AGAINST(‘my search’) and category='my category' order by price
我的问题是: 将使用多少索引来执行此搜索?
它会使用2个索引吗?
[全文索引]& [类别,价格]索引 - 将获得字词的结果,然后使用下一个索引来匹配我的category
和price
订单
它将使用1个索引
[全文索引]仅 - 将获得单词的结果,但之后必须手动匹配我的category
和price
订单 < / p>
我希望我的查询速度快,你有什么看法?我知道fulltext search
很快,但是如果我应用类别和价格顺序等条款会发生什么?会快一点吗?
答案 0 :(得分:1)
MySQL只会在任何搜索中使用一个索引。原因是使用两个索引需要两次搜索。这将使查询更慢。您可以强制MySQL在查询中使用特定索引,但这不是一个好主意。
总结:MySQL只会使用一个不能使用两个索引的索引。