Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

MySQL 索引測試

Posted on 2007 年 8 月 10 日2021 年 3 月 12 日 By 日落 在〈MySQL 索引測試〉中尚無留言

今天測試了一下 MySQL 對欄位建立索引和沒有索引的差別。我先用二個資料表分別存放二個整數和二個字串。

沒有索引的資料表:


CREATE TABLE `a_0_demo` (
`idn` int(12) unsigned NOT NULL AUTO_INCREMENT,
`int1` int(20) unsigned NOT NULL,
`int2` int(20) unsigned NOT NULL,
`c1` varchar(100) CHARACTER SET utf8 NOT NULL,
`c2` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`idn`)
) ENGINE=MyISAM;

有索引的資料表:


CREATE TABLE `a_1_demo` (
`idn` int(12) unsigned NOT NULL AUTO_INCREMENT,
`int1` int(20) unsigned NOT NULL,
`int2` int(20) unsigned NOT NULL,
`c1` varchar(100) CHARACTER SET utf8 NOT NULL,
`c2` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`idn`),
KEY `int1` (`int1`,`int2`,`c1`,`c2`)
) ENGINE=MyISAM;

然後我用亂數產生了十萬筆資料分別放到二個資料表。因為索引的關係,二個資料表大小會差很多。沒有索引的用掉了 20MB,有索引的則用掉了 49MB。

接下來要測試搜尋速度。我要他隨便搜尋一個數值:

select * from a_0_demo where 'int1' = 1000

結果沒有索引的花了 1.5 秒,有索引的才花了 0.2 秒,實在是差很多。晚點再來測試字串搜尋。

Tags:資訊學習

文章導覽

Previous Post: 黑鳳蝶
Next Post: 挑戰萬人來點名

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.