我有两个MySQL表: "list"
和 "more"
“列表”表格有超过100,000个结果 . “更多”表的结果超过50,000 .
这些表中的数据无法组合 .
问题是,我在两个表中都有一个名为“short_title”的列 . 它们都是VARCHAR(255)并且将包含类似“short-title-here”的字符串 .
我正在使用一个简单的查询:
SELECT L.title, M.more_info
FROM `list` L, `more` M
WHERE M.short_title = L.short_title
由于每个表中有太多结果,并且我需要根据作为文本字段的“short_title”列匹配结果,因此查询极其缓慢 .
"list"
表中的 "short_title"
列上有一个INDEX, "more"
表中的 "short_title"
列是UNIQUE
我能对列进行任何操作(例如:制作全文),这些会使这些查询更快吗?
先感谢您
更新
我已将查询更改为INNER JOIN两个表 .
解释查询的结果可以在这里找到:
2 回答
尝试索引short_title字段 .
这是您的查询(使用显式连接编写):
您声明
short_title
存储为text
. 您可以通过执行以下操作在其上创建常规索引:255
是要编制索引的字节数 . 这应该加快查询速度 .此外,使用
short_title
之类的名称,为什么不使用varchar()
列而不是text
?