MySQL知识总结
《MySQL是怎样运行的》知识总结
12 基于查询成本的优化
表结构
CREATE TABLE single_table (
id int not null auto_increment,
key1 VARCHAR(100),
key2 int,
key3 varchar(100),
key_part1 varchar(100),
key_part2 varchar(100),
key_part3 varchar(100),
common_field varchar(100),
primary key (id),
key idx_key1 (key1),
unique key uk_key2 (key2),
key idx_key3 (key3),
key idx_part (key_part1, key_part2, key_part3)
) ENGINE = INNODB
CHARSET = utf8;
成本
MySQL在执行查询时可以有不同的执行方案
,它会选择成本最低
的那个执行方案
去执行查询,成本是由两个方面组成:IO成本、CPU成本
IO成本:从磁盘到内存的加载过程损耗的时间
在使用MyISAM、InnoDB存储引擎都是将表的数据、索引存储到磁盘上,查询表中的记录时,需要将磁盘的数据或索引加载到内存,然后进行操作
CPU成本:读取记录、检测记录是否满足对应