【发布时间】:2014-02-21 09:11:43
【问题描述】:
我有一大堆域名和一大堆单词。我想检查我的列表中有多少个域名在它们的末尾有这些单词。我尝试了 2 个查询,但都花费了太多时间来执行。试图找出是否有任何方法可以使查询更快。
首先我尝试了这个查询,返回结果大约需要 50 分钟:
SELECT COUNT(*) AS count
FROM table
WHERE domain_name LIKE '%my_word.%';
然后我想如果我从中删除.%,也许它会更快,所以我尝试了这个,但它仍然很慢:
SELECT COUNT(*) AS count
FROM table
WHERE SUBSTRING_INDEX(domain_name, '.', 1) LIKE '%my_word';
有人知道查询可能会更快吗?
谢谢。
【问题讨论】:
-
你用的是什么mysql表引擎??
-
我正在使用innodb引擎
-
你能提供一些匹配的样本吗?
-
样本匹配是什么意思?例如单词
best存在于383,956 个域名的开头或结尾。这就是我正在搜索查询以查找单词是否位于域开头的速度非常快,但查找它是否位于末尾的查询非常慢 -
即使我现在也有同样的问题..!!!