最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL索引简单分析_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:22:07
文档

MySQL索引简单分析_MySQL

MySQL索引简单分析_MySQL:bitsCN.com 创建2张用户表user、user2,表结构相同,但user表使用InnoDB存储引擎,而user2表则使用 MyISAM存储引擎。-- Table user DDLCREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` v
推荐度:
导读MySQL索引简单分析_MySQL:bitsCN.com 创建2张用户表user、user2,表结构相同,但user表使用InnoDB存储引擎,而user2表则使用 MyISAM存储引擎。-- Table user DDLCREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` v
 bitsCN.com

创建2张用户表user、user2,表结构相同,但user表使用InnoDB存储引擎,而user2表则使用 MyISAM存储引擎。

-- Table "user" DDLCREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `age` tinyint(4) DEFAULT NULL, `nickname` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), KEY `name` (`name`), KEY `age` (`age`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- Table "user2" DDLCREATE TABLE `user2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `age` tinyint(4) DEFAULT NULL, `nickname` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), KEY `name` (`name`), KEY `age` (`age`)) ENGINE=MyISAM AUTO_INCREMENT=131610 DEFAULT CHARSET=utf8;

分别插入10W条测试数据到表user & user2。

对索引的使用分析

Explain Select * from user where id>100 /G;

图1

Explain Select * from user2 where id>100 /G;

图2

User 表中的数据和 User2 表中的数据是一样的,索引结构也是一样的,只不过它们的存储引擎不同。在图1中,查询用到了PRIMARY主键索引,而查询优化器预估的结果大概在65954行左右(实际是131513);在图2中,查询却没有使用索引,而是全表扫描了,返回的预估结果在131608行(实际是131509)。

Explain Select * from user where id>100 and age>50 /G;

图3

Explain Select * from user where id>100 and age=50 /G;

图4

Explain Select * from user2 where id>100 and age>50 /G;

图5

Explain Select * from user2 where id>100 and age=50 /G;

图6


分享一个不错的博客,《理解MySQL--索引和优化》

bitsCN.com

文档

MySQL索引简单分析_MySQL

MySQL索引简单分析_MySQL:bitsCN.com 创建2张用户表user、user2,表结构相同,但user表使用InnoDB存储引擎,而user2表则使用 MyISAM存储引擎。-- Table user DDLCREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` v
推荐度:
标签: 用户 存储 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top