mysql索引開發者必備

首先:先假設有一張表,表的數據有10W條數據,其中有一條數據是nickname='has',如果要拿這條數據的話需要寫的sql是 SELECT * FROM award WHERE nickname = 'has'

一般情況下,在沒有建立索引的時候,mysql需要掃描全表及掃描10W條數據找這條數據,如果我在nickname上建立索引,那麼mysql只需要掃描一行數據及爲我們找到這條nickname='has'的數據,是不是感覺性能提升了好多.

mysql的索引分爲單列索引(主鍵索引,唯索引,普通索引)和組合索引.

單列索引:一個索引只包含一個列,一個表可以有多個單列索引.

組合索引:一個組合索引包含兩個或兩個以上的列,

本文使用的案例的表:

CREATE TABLE award (
   id int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶id',
   aty_id varchar(100) NOT NULL DEFAULT '' COMMENT '活動場景id',
   nickname varchar(12) NOT NULL DEFAULT '' COMMENT '用戶暱稱',
   is_awarded tinyint(1) NOT NULL DEFAULT 0 COMMENT '用戶是否領獎',
   award_time int(11) NOT NULL DEFAULT 0 COMMENT '領獎時間',
   account varchar(12) NOT NULL DEFAULT '' COMMENT '帳號',
   password char(32) NOT NULL DEFAULT '' COMMENT '密碼',
   message varchar(255) NOT NULL DEFAULT '' COMMENT '獲獎信息',
   created_time int(11) NOT NULL DEFAULT 0 COMMENT '創建時間',
   updated_time int(11) NOT NULL DEFAULT 0 COMM
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章