我正在考虑这个问题,如果有多个列,搜索必须尽快进行。
例如,查看TEST(COL_A, COL_B)
带有(树)索引的表TEST_IDX(COL_A, COL_B)
。该索引可用于以下WHERE
条件:
WHERE COL_A='x' AND COL_B='y'
WHERE COL_A='x' AND COL_B<'y'
但是,如果两个条件项都使用不等式怎么办?所以我在想一个WHERE COL_A<'x' AND COL_B<'y'
?AFAIK,在这种情况下,普通的记录树索引是行不通的。我可以想象一些数据结构可以使这样的查询也很快,但我认为它应该使用更复杂的数据结构作为一个简单的树。
这在MySQL中存在吗?或者在另一个 SQL 服务器中?
创建两个单独的索引:idxA(COL_A) 和 idxB(COL_B)。MySQL 将同时使用这两个索引,然后合并结果。
http://dev.mysql.com/doc/refman/5.0/en/index-merge-optimization.html
部分:8.3.1.4.3 索引合并排序联合访问算法