我有一张桌子,有2个拉赫(200K)行。当我执行查询时,需要花费太多时间(大约2分钟)。如果数据低于设定限制,需要太多时间
这是我的查询: -
SELECT a,b,c,d,@row:="tag1" as tag
FROM tableName
WHERE tagName like "%helloworld|%"
ORDER BY viewCount desc
LIMIT 20;
helloworld|
2行仅发生。
我想如果数据更改查询目前的20倍以上,它应该返回20行其他任何行存在。
如何优化此查询?
运行全表扫描。尝试全文搜索而不是 –
您需要创建带有标签的单独表格,以便在不使用全扫描的情况下进行过滤。 –
一起尝试在'tagName'列全文索引用'MATCH AGAINST',即:'WHERE MATCH(标签名)反对( '的HelloWorld |' IN BOOLEAN MODE)' – mitkosoft