我正在尝试加速已经有一些索引的MySQL表中的SELECT
个查询。希望对同时运行的频繁INSERT INTO
查询(由其他客户端)产生重大影响。这些表有数百万个条目,并且已经超过了技嘉大小(它们有一个BLOB字段)。
这些表有一对描述连续间隔的字段(可以是以微秒为单位的时间间隔,也可以是执行次数,版本或其他内容)。这两个字段被索引;我有两个索引,一个只用于其中一个字段(当我查询它时),另一个用于两个字段(也可以出现在许多查询中)。
另外两个候选索引来自标识符(例如,文件名),因为它也常用于查询。
一位同事建议我们将标识符合并到之前的两个索引中。但是,我觉得拥有单独的键更有意义。我正在准备一个测试,以确定哪个是更好的选择,但我预计这将需要几天时间。与此同时,我正在寻找过去的经验和/或建议。
所以我的问题是:
答案 0 :(得分:2)
确定要为表定义的索引取决于很多因素。其中最重要的一个是你想要运行的查询。
在这种情况下,如果不知道表结构以及您希望如何在工作中包含标识符的查询,就很难说如何构建索引。
请记住,MySQL每个查询限制都有一个索引。这意味着查询优化器一次只能为任何给定的表使用一个索引(如果有的话)。