在没有索引/主键/唯一字段的情况下提高MySQL的查询速度

时间:2011-03-29 14:36:46

标签: mysql optimization

所以,我有这个数据库(几乎没有关系,因为它没有主键,唯一字段,外键等),每次我重新启动C客户端时都会执行此查询:

select * from table where table.id1 = another_table.id1 and table.id2 > another_table.id2 limit 1;

第一个表中有900万行,第二个表中有800行,需要永远完成:/

我不是SQL开发人员,所以我在这个领域的知识非常有限。当然这个问题可能听起来很愚蠢,但现在我已经死路了......

3 个答案:

答案 0 :(得分:0)

你不能强迫数据库以更快的速度运行,除非你给它一些东西可以使用 - 这意味着你需要添加索引以使其更快地运行。一旦你做到这一点,它将会非常快。

答案 1 :(得分:0)

有没有任何理由没有索引,PK等?因为这正是在这里获得不错的表现所缺少的。另外,another_table.id1和another_table.id2是否与表或固定值连接(在前一种情况下:sql的外观如何?)。

答案 2 :(得分:0)

通常索引可以提高这类查询的性能,因此如果您认为索引可能会破坏您的插入性能,则可能选择是定义索引,但禁用并在{{1}时启用索引完成了,就像这样。

select