单表扫描算法代价表
顺序扫描: N_page * a_tuple_IO_time+N_tuple * a_tuple_CPU_time
N_page:数据页面数
N_tuple:元组数
a_tuple_CPU_time:一个元组从页面中解析的CPU花费。
a_tuple_IO_time:一个元组从页面中解析的IO花费。
索引扫描:C_index + N_page_index * a_tuple_IO_time
C_index:索引的花费,C_index = N_page_index * a_page_IO_time
N_page_index:索引页面数。
a_tuple_IO_time:一个元组从页面中解析的IO花费。
实例:MYSQL5.7单表扫描算法分析
表结构
show create table SC \G;
*************************** 1. row ***************************
Table: SC
Create Table: CREATE TABLE `SC` (
`S#` char(8) DEFAULT NULL,
`C#` char(3) DEFAULT NULL,
`Score` float(4,0) DEFAULT NULL,
KEY `s_idx` (`S#`),
CONSTRAINT `sc_frk` FOREIGN KEY (`S#`) REFERENCES `Student` (`S#`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (
顺序扫描: N_page * a_tuple_IO_time+N_tuple * a_tuple_CPU_time
N_page:数据页面数
N_tuple:元组数
a_tuple_CPU_time:一个元组从页面中解析的CPU花费。
a_tuple_IO_time:一个元组从页面中解析的IO花费。
索引扫描:C_index + N_page_index * a_tuple_IO_time
C_index:索引的花费,C_index = N_page_index * a_page_IO_time
N_page_index:索引页面数。
a_tuple_IO_time:一个元组从页面中解析的IO花费。
实例:MYSQL5.7单表扫描算法分析
表结构
show create table SC \G;
*************************** 1. row ***************************
Table: SC
Create Table: CREATE TABLE `SC` (
`S#` char(8) DEFAULT NULL,
`C#` char(3) DEFAULT NULL,
`Score` float(4,0) DEFAULT NULL,
KEY `s_idx` (`S#`),
CONSTRAINT `sc_frk` FOREIGN KEY (`S#`) REFERENCES `Student` (`S#`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (