国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL索引簡單分析

2024-07-24 12:41:57
字體:
來源:轉載
供稿:網友

創建2張用戶表user、user2,表結構相同,但user表使用InnoDB存儲引擎,而user2表則使用 MyISAM存儲引擎。

-- Table "user" DDL CREATE 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" DDL CREATE 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。

<?php $example = array(    '@qq.com',     '@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 & user2for($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'; ?>

對索引的使用分析

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 易门县| 江孜县| 福泉市| 汉寿县| 大埔县| 陆川县| 寿光市| 卢龙县| 桂阳县| 长治县| 阿巴嘎旗| 广南县| 藁城市| 登封市| 临潭县| 昌都县| 禹州市| 交口县| 葵青区| 吉首市| 阿鲁科尔沁旗| 社旗县| 和政县| 金平| 乌苏市| 合山市| 绥中县| 岐山县| 古浪县| 钦州市| 澄迈县| 泰兴市| 扶余县| 安西县| 郓城县| 班玛县| 卢龙县| 永清县| 铜山县| 饶河县| 浦江县|