执行计划: 一条sql 语句在没有执行之前,先把需要的资源都计划好,例如:CPU、内存资源的分配预计,就形成成就成为“执行计划”
目前:只有“查询sql”语句支持做执行计划
无索引的执行情况
possible_keys: 可能用到的索引
rows: 收到关联查询的记录条数
key: 实际用到的索引
无索引的情况关联记录是 15547
mysql> show create table t_user;
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t_user | CREATE TABLE `t_user` (
`id` bigint(40) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL COMMENT '???',
`password` varchar(255) DEFAULT NULL COMMENT '????',
`phone` varchar(30) DEFAULT NULL COMMENT '???',
`nickname` varchar(255) DEFAULT NULL COMMENT '??',
`realname` varchar(255) DEFAULT NULL COMMENT '????',
`email` varchar(255) DEFAULT NULL COMMENT '??',
`wx` varchar(255) DEFAULT NULL COMMENT '???',
`qq` varchar(255) DEFAULT NULL COMMENT 'qq?',
`logo` varchar(255) DEFAULT NULL COMMENT '????',
`type` varchar(255) DEFAULT NULL COMMENT '??????????',
`is_enable` bit(1) DEFAULT b'1' COMMENT '????',
`is_lock` bit(1) DEFAULT b'0' COMMENT '????',
`is_delete` bit(1) DEFAULT b'0' COMMENT '?????',
`create_by` varchar(255) DEFAULT NULL COMMENT '???',
`update_by` varchar(255) DEFAULT NULL COMMENT '???',
`create_date` datetime DEFAULT NULL COMMENT '????',
`update_date` datetime DEFAULT NULL COMMENT '????',
`invitation_code` varchar(255) DEFAULT NULL COMMENT '???',
`is_subscribe` bit(1) DEFAULT b'0' COMMENT '???????',
`wallet_address` varchar(255) DEFAULT NULL COMMENT '????',
`g_user_id` int(11) DEFAULT NULL COMMENT '?????ID',
`calculate` int(11) DEFAULT '0' COMMENT '??????????',
`wallet_password` varchar(255) DEFAULT NULL COMMENT '????',
`inviter_user_id` bigint(255) DEFAULT NULL COMMENT '???ID',
`last_activity_date` datetime DEFAULT NULL COMMENT '??????',
`inviter_count` int(11) DEFAULT '0' COMMENT '????',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17106 DEFAULT CHARSET=utf8 COMMENT='?????' |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> explain select * from t_user where t_user.phone='13270810272' \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t_user
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 15547
filtered: 10.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)
2.有索引的情况
关联记录里只有100,并且用到了索引phone
mysql> use five
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show create table t_user;
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t_user | CREATE TABLE `t_user` (
`id` bigint(40) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL COMMENT '???',
`password` varchar(255) DEFAULT NULL COMMENT '????',
`phone` varchar(30) DEFAULT NULL COMMENT '???',
`nickname` varchar(255) DEFAULT NULL COMMENT '??',
`realname` varchar(255) DEFAULT NULL COMMENT '????',
`email` varchar(255) DEFAULT NULL COMMENT '??',
`wx` varchar(255) DEFAULT NULL COMMENT '???',
`qq` varchar(255) DEFAULT NULL COMMENT 'qq?',
`logo` varchar(255) DEFAULT NULL COMMENT '????',
`type` varchar(255) DEFAULT NULL COMMENT '??????????',
`is_enable` bit(1) DEFAULT b'1' COMMENT '????',
`is_lock` bit(1) DEFAULT b'0' COMMENT '????',
`is_delete` bit(1) DEFAULT b'0' COMMENT '?????',
`create_by` varchar(255) DEFAULT NULL COMMENT '???',
`update_by` varchar(255) DEFAULT NULL COMMENT '???',
`create_date` datetime DEFAULT NULL COMMENT '????',
`update_date` datetime DEFAULT NULL COMMENT '????',
`invitation_code` varchar(255) DEFAULT NULL COMMENT '???',
`is_subscribe` bit(1) DEFAULT b'0' COMMENT '???????',
`wallet_address` varchar(255) DEFAULT NULL COMMENT '????',
`g_user_id` int(11) DEFAULT NULL COMMENT '?????ID',
`calculate` int(11) DEFAULT '0' COMMENT '??????????',
`wallet_password` varchar(255) DEFAULT NULL COMMENT '????',
`inviter_user_id` bigint(255) DEFAULT NULL COMMENT '???ID',
`last_activity_date` datetime DEFAULT NULL COMMENT '??????',
`inviter_count` int(11) DEFAULT '0' COMMENT '????',
PRIMARY KEY (`id`),
UNIQUE KEY `phone` (`phone`) USING BTREE,
KEY `inviter_user_id` (`inviter_user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=27019 DEFAULT CHARSET=utf8 COMMENT='?????' |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> explain select * from t_user where t_user.phone='13270810272' \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t_user
partitions: NULL
type: const
possible_keys: phone
key: phone
key_len: 93
ref: const
rows: 1
filtered: 100.00
Extra: NULL
1 row in set, 1 warning (0.00 sec)