我有一张只有一行的表格。
该表被频繁查询。 (在每个页面加载时)。
构建查询的最佳方法是什么?
让我们假设,这是一个表结构:
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
字段未建立索引。如果只有一行,我看不到索引中的点。
最佳答案
优化器可能会将所有查询优化为相同的。但理论上来说
SELECT * FROM counter;
是最快的,因为它不需要对数据进行任何查找,因为没有 where
子句来限制数据。
关于MySQL 从具有一行的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490062/