在資料庫表中,對欄位建立索引可以大大提高查詢速度。假如我們建立了乙個 mytable表:
create table mytable( id int not null, username varchar(16) not null );
我們隨機向裡面插入了10000條記錄,其中有一條:5555, admin。
在查詢username="admin"的記錄 select * from mytable where username='admin';時,如果在username上已經建立了索引,mysql無須任何掃瞄,即準確可找到該記錄。相反,mysql會掃瞄所有記錄,即要查詢10000條記錄。
索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可以有多個單列索引,但這不是組合索引。組合索引,即乙個索包含多個列。
mysql索引型別包括:(1)普通索引這是最基本的索引,它沒有任何限制。
create index indexname on mytable(username(length));如果是char varchar型別,length可以小於字段實際長度;如果是blob和text型別,必須指定 length,下同。
drop index [indexname] on mytable;
(2)唯一索引
它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。
建立索引:
create unique index indexname on mytable(username(length));
(3)主鍵索引
它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引:
create table mytable( id int not null, username varchar(16) not null, primary key(id) );(4)組合索引
正確合理的建立MYSQL資料庫索引
普通mysql執行,資料量和訪問量不大的話,是足夠快的,但是當資料量和訪問量劇增的時候,那麼就會明顯發現mysql很慢,甚至down掉,那麼就要考慮優化我們的mysql了。其中優化mysql的乙個重要環節就是為資料庫建立正確合理的索引。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表...
如何正確合理的建立MYSQL資料庫索引
普通 mysql 執行,資料量和訪問量不大的話,是足夠快的,但是當資料量和訪問量劇增的時候,那麼就會明顯發現 mysql 很慢,甚至 down 掉,那麼就要考慮優化我們的 mysql 了。其中優化 mysql 的乙個重要環節就是為資料庫建立正確合理的索引。如果沒有索引,執行查詢時mysql必須從第乙...
如何正確合理的建立MYSQL資料庫索引
普通mysql執行,資料量和訪問量不大的話,是足夠快的,但是當資料量和訪問量劇增的時候,那麼就會明顯發現mysql很慢,甚至down掉,那麼就要考慮優化我們的mysql了。其中優化mysql的乙個重要環節就是為資料庫建立正確合理的索引。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表...