我的桌子只有一排。
经常查询此表。 (在每个页面加载)。
构建查询的最佳方法是什么?
让我们假设,这是一个表结构:
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
字段未编入索引。如果只有一行,我没有看到索引中的点。
答案 0 :(得分:1)
优化器可能会优化所有查询。但理论上
SELECT * FROM counter;
是最快的,因为它不需要对数据进行任何查找,因为没有where
子句来限制数据。
答案 1 :(得分:1)
如果您经常使用该行,则每次只触发一次ans本地存储值时不会触发查询。
一次选择所有值
SELECT * FROM counter;
此查询将是最快的,因为没有条件可以检查限制和位置。
答案 2 :(得分:1)
SELECT * FROM counter;
这是最快的,但对于这种类型的表,性能最多可以忽略不计。