MySQL从包含ONE行的表中选择

时间:2013-05-10 20:06:53

标签: mysql performance

我的桌子只有一排。

经常查询此表。 (在每个页面加载)。

构建查询的最佳方法是什么?

让我们假设,这是一个表结构:

CREATE TABLE `counter` (
    `id` INT(10) NOT NULL DEFAULT '0',
    `point1` INT(10) NOT NULL DEFAULT '0',
    `point2` INT(10) NOT NULL DEFAULT '0',
    `point3` INT(10) NOT NULL DEFAULT '0',
    `...` INT(10) NOT NULL DEFAULT '0',
    `pointN` INT(10) NOT NULL DEFAULT '0'
)

我有意添加了id字段。表引擎为MyISAM

现在我正在这样做:

SELECT * FROM counter WHERE id = 1 LIMIT 1;

我可以这样做:

SELECT * FROM counter;

或者这样:

SELECT * FROM counter LIMIT 1;

性能会有差异吗?

id字段未编入索引。如果只有一行,我没有看到索引中的点。

3 个答案:

答案 0 :(得分:1)

优化器可能会优化所有查询。但理论上

SELECT * FROM counter;

是最快的,因为它不需要对数据进行任何查找,因为没有where子句来限制数据。

答案 1 :(得分:1)

如果您经常使用该行,则每次只触发一次ans本地存储值时不会触发查询。

一次选择所有值

SELECT * FROM counter;

此查询将是最快的,因为没有条件可以检查限制和位置。

答案 2 :(得分:1)

SELECT * FROM counter;

这是最快的,但对于这种类型的表,性能最多可以忽略不计。