我试图在MySQL数据库中存储大约1亿个域名,但是我无法找到在域名上使用的正确的索引方法。
问题是,类似的查询也将被执行:
SELECT id FROM domains WHERE domain LIKE '%.example.com'
或
SELECT id FROM domains WHERE domain LIKE 'example.%'
如果这样做更容易,那么‘%示例%’并不是一个要求,但最好是拥有/能够这样做是件好事。
正确的索引是什么?从左到右(例如.%)应该是直接向前的,但是从右到左(%.example.com)是有问题的,但是最常见的查询。
我在
我有一个很大的域名列表,还有一个很大的单词列表。我想看看在我的列表中有多少域名的末尾有这些单词。我尝试了2个查询,但都花费了太多的时间来执行。尝试找出是否有任何方法可以使查询速度更快。
首先我尝试了这个查询,大约需要50分钟才能返回结果:
SELECT COUNT(*) AS count
FROM table
WHERE domain_name LIKE '%my_word.%';
然后我想如果我去掉它的.%,也许它会更快,所以我试了一下,但它仍然很慢:
SELECT COUNT(*) AS count
FROM table
WHERE SUBSTRING
我想使用一个域名来查询的。我知道这是可能的,因为这个 (根据ISP域名查找SBL列表)可以做到这一点,而可以这样做,但我似乎只能让它与IP地址一起工作。我快速查看了SpamAssassin代码,但是它已经非常概括了,所以我可能会花几个小时来追踪那些真正起作用的代码。现在,我可以成功地查询SBL中的IP地址:
#returns 127.0.0.2, so 208.73.210.0 is on the blacklist
dig +short 0.210.73.208.sbl.spamhaus.org
#returns nothing, so 72.14.225.72 isn't on
我有2个表,1为免费用户和1为付费用户,他们都是跟踪点击,我需要显示每个附属链接谁是推荐人(域名),用户有时可能是一个免费用户和一些时间可以是一个付费用户,所以我需要合并这两个表的统计数据。 此查询不起作用: SELECT ref,COUNT(ref) AS clicks
FROM click_analytics_free
WHERE link_id = '$link_id'
GROUP BY ref
UNION ALL
SELECT ref,COUNT(ref) AS clicks
FROM click_analytics_paid
WHERE link_id =