慕圣9138153
2020-03-27 10:54
以本人愚见,MySQL对语句的执行是有优化的。MySQL会对执行的语句进行处理,生成多种执行方案,然后选取成本最低的方案。下面是两条语句的执行计划:
mysql> explain SELECT * FROM user WHERE id = 1088248166370832385 and deleted =0\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
partitions: NULL
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 8
ref: const
rows: 1
filtered: 100.00
Extra: NULL
mysql> explain SELECT * FROM user WHERE deleted=0 AND id = 1088248166370832385\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
partitions: NULL
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 8
ref: const
rows: 1
filtered: 100.00
Extra: NULL
两个的执行计划是一样的。它们的效率应该会相等吧。