在MySQL中对非空间数据使用R树索引
我正在升级一个库存数据库,希望加快查询速度。大部分排序在两列上,每列都是一个范围。比如说在MySQL中对非空间数据使用R树索引,mysql,query-optimization,r-tree,Mysql,Query Optimization,R Tree,我正在升级一个库存数据库,希望加快查询速度。大部分排序在两列上,每列都是一个范围。比如说 SELECT .... WHERE price BETWEEN 10.50 AND 34.20 AND date BETWEEN 1311264060 AND 1313942460 ORDER BY stockNo LIMIT 100 我理解因为使用了范围,MySQL只能在一列上使用索引。换句话说,它可以使用索引提取与价格范围匹配的记录,但随后必须借助表扫描来查找与日期范围匹配的记录 我的想法是假装价格
SELECT ....
WHERE price BETWEEN 10.50 AND 34.20
AND date BETWEEN 1311264060 AND 1313942460
ORDER BY stockNo LIMIT 100
我理解因为使用了范围,MySQL只能在一列上使用索引。换句话说,它可以使用索引提取与价格范围匹配的记录,但随后必须借助表扫描来查找与日期范围匹配的记录
我的想法是假装价格和数据是x轴和y轴,填充一列空间数据,利用MySQLs空间搜索和R树索引提取数据
有人有R-树的经验吗?这可能会加快我的速度吗?R-trees最适用于维度含义相似的数据,例如地理坐标,您可以执行窗口查询,例如范围查询 您的数据可能有一些影响会损害R-树,例如,价格只有一些离散值,日期范围没有完全不同的尺度。许多R-树优化策略,如“体积”和“面积”,在实际计算价差和时差的乘积时没有多大意义 不过,R-树可能仍然有效。但使用kB树和类似的拆分树可能会更好。我不确定MySQL是否有这些功能,我不这么认为(它通常缺少所有高级功能)