最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL索引使用全程分析

 更新時(shí)間:2012年11月12日 09:58:26   作者:  
本文將介紹MySQL索引詳細(xì)使方法;需要的朋友可以參考下
創(chuàng)建2張用戶表user、user2,表結(jié)構(gòu)相同,但user表使用InnoDB存儲(chǔ)引擎,而user2表則使用 MyISAM存儲(chǔ)引擎。
復(fù)制代碼 代碼如下:

-- 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條測試數(shù)據(jù)到表user & user2。
復(fù)制代碼 代碼如下:

<?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測試數(shù)據(jù)到表 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';
?>

對(duì)索引的使用分析
Explain Select * from user where id>100 \G;
 
圖1
Explain Select * from user2 where id>100 \G;
 
圖2
User 表中的數(shù)據(jù)和 User2 表中的數(shù)據(jù)是一樣的,索引結(jié)構(gòu)也是一樣的,只不過它們的存儲(chǔ)引擎不同。在圖1中,查詢用到了PRIMARY主鍵索引,而查詢優(yōu)化器預(yù)估的結(jié)果大概在65954行左右(實(shí)際是131513);在圖2中,查詢卻沒有使用索引,而是全表掃描了,返回的預(yù)估結(jié)果在131608行(實(shí)際是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

相關(guān)文章

  • 解決MySQL 5.7.9版本sql_mode=only_full_group_by問題

    解決MySQL 5.7.9版本sql_mode=only_full_group_by問題

    這篇文章主要介紹了解決MySQL 5.7.9版本sql_mode=only_full_group_by問題,需要的朋友可以參考下
    2017-05-05
  • mysql中四種備份模式

    mysql中四種備份模式

    本文主要介紹了mysql中四種備份模式,無論使用哪種備份方式,都需要根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量大小來選擇合適的備份策略,并定期驗(yàn)證備份是否有效,感興趣的可以了解一下
    2023-11-11
  • Mysql數(shù)據(jù)庫的增刪改查、備份、還原等基本操作大全

    Mysql數(shù)據(jù)庫的增刪改查、備份、還原等基本操作大全

    這篇文章主要介紹了Mysql數(shù)據(jù)庫的增刪改查、備份、還原等基本操作,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 分享幾道關(guān)于MySQL索引的重點(diǎn)面試題

    分享幾道關(guān)于MySQL索引的重點(diǎn)面試題

    這篇文章主要給大家介紹了幾道關(guān)于MySQL索引的重點(diǎn)面試題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 如何解決mysql重裝失敗方法介紹

    如何解決mysql重裝失敗方法介紹

    相信大家使用MySQL都有過重裝的經(jīng)歷,要是重裝MySQL基本都是在最后一步通不過,除非重裝操作系統(tǒng),究其原因就是系統(tǒng)里的注冊(cè)表沒有刪除干凈
    2012-11-11
  • MySql登錄時(shí)閃退的快速解決辦法

    MySql登錄時(shí)閃退的快速解決辦法

    這篇文章主要介紹了MySql登錄時(shí)閃退的快速解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • win11設(shè)置mysql開機(jī)自啟的實(shí)現(xiàn)方法

    win11設(shè)置mysql開機(jī)自啟的實(shí)現(xiàn)方法

    本文主要介紹了win11設(shè)置mysql開機(jī)自啟的實(shí)現(xiàn)方法,要通過命令行方式設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • MySQL Sleep連接過多問題解決方法

    MySQL Sleep連接過多問題解決方法

    這篇文章主要介紹了MySQL Sleep連接過多問題解決方法,MySQL Sleep連接過多一般多為客戶端沒關(guān)閉連接導(dǎo)致的,解決方法很簡單,修改一下配置文件即可,需要的朋友可以參考下
    2015-05-05
  • Mysql使用存儲(chǔ)過程快速添加百萬數(shù)據(jù)的示例代碼

    Mysql使用存儲(chǔ)過程快速添加百萬數(shù)據(jù)的示例代碼

    這篇文章主要介紹了Mysql使用存儲(chǔ)過程快速添加百萬數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Mysql全文搜索match against的用法

    Mysql全文搜索match against的用法

    全文檢索在 MySQL 中就是一個(gè) FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時(shí)或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上創(chuàng)建
    2011-10-10

最新評(píng)論

广德县| 鄂托克前旗| 阳新县| 墨竹工卡县| 原阳县| 犍为县| 老河口市| 揭西县| 韶关市| 房山区| 大名县| 永仁县| 昌黎县| 民乐县| 龙游县| 阿拉尔市| 长子县| 嘉峪关市| 普洱| 六枝特区| 通州区| 玛纳斯县| 荔波县| 新龙县| 蒙自县| 大新县| 中山市| 定西市| 金阳县| 德格县| 兖州市| 印江| 台中市| 长乐市| 长顺县| 安达市| 饶平县| 西畴县| 兴文县| 绥化市| 张家界市|