Skip to content

Zeroplex 生活隨筆

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

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

MySQL 索引測試 2

Posted on 2007 年 8 月 11 日2021 年 3 月 12 日 By 日落 在〈MySQL 索引測試 2〉中有 3 則留言

繼續上次的測試,不過把字串搜尋的部分加了進去。索引對字串搜尋的效能似乎比較沒有幫助。

第一行是指令,第二行是沒有建立索引的資料表,第三行是有建立索引的資料表花掉的時間。另外我這次把資料增加到了二十萬筆,這樣差距會比較明顯。

select * from a_0_demo where c1 like '%xy%'
0.0845 秒
0.0366 秒
SELECT * FROM `a_0_demo` WHERE `int1` <> `int2` and c1 like '%xy__'
0.2936 秒
0.3015 秒
select * from a_0_demo where c1 like '__xyz%' and c2 like '%abc__'
6.1010 秒
7.4322 秒

遇到了最後一個結果,感覺怪怪的,決定再回來測試一次數字。

SELECT * FROM `a_0_demo` WHERE `int1` = 10000
4.8623 秒
0.0935 秒
Tags:資訊學習

文章導覽

Previous Post: 挑戰萬人來點名 - 點名開始!
Next Post: Active Virus Sheild 不在提供服務了

Comments (3) on “MySQL 索引測試 2”

  1. isLenny表示:
    2007 年 8 月 14 日10:43

    今天上班有點無聊,平常用的DB是postgreSQL和MSSQL,看到您這個測試,我也建了一個類似的MSQL環境來玩玩,奇怪的是,當我測試Integer的查詢時,並不會有那麼大差距,除非我只針對某個欄位作index,效果才明顯有別。
    另外在string的查詢上,確實是差別不大,不過我想這是因為您用了LIKE,記得LIKE的查詢字串開頭如果是”%”應該是不會套用index的,不知道對不對!?
    我用VirtualBox做的測試環境,對於測試效果也許有影響!

    環境:WinXP,MySQL5,VirtualBox,20萬筆

    回覆
  2. 日落 Zero表示:
    2007 年 8 月 14 日11:00

    我忘了用不同語法會用不同的發誓搜尋,我應該從最基本的語法開始測試才對。

    我測試 integer 時只有第一次差距會很大,第二次連時間都縮到很短,懷疑是不是資料庫也建立快取。我 時間去看一下 manual 好了。

    我沒有在虛擬電腦下測試,因為怕電腦跑資料庫、伺服器和瀏覽器會吃不消,所以我找了一台測試機執行,那台作業系統是 FreeBSD ,但是應該沒什麼影響。

    回覆
  3. 日落 Zero表示:
    2007 年 8 月 14 日13:00

    關於什麼時候會用到索引,下面這個網頁有提到一些:

    MySQL索引經驗之淺見

    回覆

發佈回覆給「isLenny」的留言 取消回覆

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


其他

關於我  (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 國際 授權條款授權.