quartz mysql索引_mysql索引分析

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

44acf7931fc53e44eed28ffeb2db6e97.gif

--Table "user" DDL CREATE TABLE `user` (

`id`int(11) NOT NULLAUTO_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" DDL CREATE TABLE`user2` (

`id`int(11) NOT NULLAUTO_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;

44acf7931fc53e44eed28ffeb2db6e97.gif

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

44acf7931fc53e44eed28ffeb2db6e97.gif

'@sina.com.cn',

'@163.com',

'@126.com',

'@gmail.com',

'@yahoo.com',

'@live.com',

'@msn.com',

'@cisco.com',

'@microsoft.com',

'@ibm.com',

'@apple.com');$con = mysql_connect("localhost", "root", "your_mysql_password");mysql_select_db("index_test", $con);//添加10W测试数据到表 user & user2 for($i=0; $i<100000; $i++)

{$temp = md5(uniqid());$name = substr($temp, 0, 16);$email = substr($temp, 8, 12).$example[array_rand($example, 1)];$age = rand(18, 99);$nickname = substr($temp, 16, 16);mysql_query("INSERT INTO user(name,email,age,nickname) VALUES('$name','$email',$age,'$nickname')");mysql_query("INSERT INTO user2(name,email,age,nickname) VALUES('$name','$email',$age,'$nickname')");

}mysql_close($con);echo 'success';?>

44acf7931fc53e44eed28ffeb2db6e97.gif

对索引的使用分析

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

0a819955a517f41853a2849b5187982e.png

图1

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

9b9fc4e229e47df8264f2eccb7bc4369.png

图2

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

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

f1763d58ef716f5af338d26df93f3278.png

图3

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

33f63cd9542fc86a079806f920b96072.png

图4

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

a991ad72c8d1c5dba19fcba4aebae9b2.png

图5

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

6f1d938e733d7e98c1fba7788efc642d.png

图6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值