【发布时间】:2013-06-27 10:44:34
【问题描述】:
我有下表
CREATE TABLE `jobs` (
`job_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`job_name` VARCHAR( 255 ) NOT NULL ,
`job_desc` VARCHAR( 255 ) NOT NULL ,
`job_date` DATETIME NOT NULL
) ENGINE = MYISAM ;
假设此表包含 600,000 个条目
问题一:哪一个好用并且可以提高查询性能?
SELECT job_name FROM jobs WHERE job_id = 10005
Vs
SELECT job_name FROM jobs WHERE job_id = 10005 LIMIT 1
问题2:如果我使用这个有什么缺点?
SELECT job_name FROM jobs WHERE job_id = 10005 LIMIT 1
【问题讨论】:
-
首先使用 where 子句选择所有记录,然后使用 limit 限制它们,因为您的情况总是只有一条记录,因此无需使用 limit
-
如果我用这个限制子句有什么缺点?
-
我不认为有任何缺点,但这里没有必要使用从头到尾的记录限制
-
我能看到的唯一缺点是它必须多做一点处理解析查询,然后可能多做一点来限制结果。但是额外的时间太小了以至于无关紧要。
标签: mysql performance performance-testing