【问题标题】:Best way to search in multiple columns在多列中搜索的最佳方法
【发布时间】:2013-06-17 08:12:10
【问题描述】:

我想知道同时搜索多个列的最佳方法是什么,这是在大型数据库上。

例如,我有一个包含 400k 记录的表,我想与另一个包含 1000k 记录的表执行交集。

目前我正在做这样的事情:

alter table t1 add column (hash varbinary(32));
update t1 set hash = md5(concat(col1, col2, col3));
alter table t1 add index (hash);

然后我使用散列列进行查询、连接等...

select * from t1 where t1.hash not in (select t2.hash from t2); 

有没有人有类似的经历,或者使用其他技巧或其他可能有趣的东西来分享?

【问题讨论】:

    标签: mysql hash bigdata data-warehouse


    【解决方案1】:

    您看过Apache Solr 项目吗?我没有将它与 MySQL 一起使用,但过去曾参与过一个将它与 Microsoft SQL Server 一起使用的项目。对于复杂的查询非常有用。

    【讨论】:

      【解决方案2】:

      如果col1, col2, col3在两个表中是相同的数据类型并且有一个索引(更好的聚集),那么这个解决方案不会带来太多的性能提升。 存储int 列会更便宜,列的所有组合都已编号。

      我认为您的表结构和用于获得“交集”的查询还有更多改进空间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 1970-01-01
        • 2013-11-04
        • 1970-01-01
        • 2019-01-03
        相关资源
        最近更新 更多