MySQL數(shù)據(jù)庫(kù)給表添加索引的實(shí)現(xiàn)
說明:當(dāng)數(shù)據(jù)庫(kù)中的記錄數(shù)過多時(shí),查詢速度會(huì)顯著變慢。此時(shí)可以給表創(chuàng)建索引,提高查詢速度。
一、創(chuàng)建索引前
我現(xiàn)在有一張表,有1000萬條記錄,根據(jù)username值,查詢一條記錄,測(cè)試下查詢時(shí)間;
select id, username, password, sex, email from user where username='zhangsan5000025';
查詢時(shí)間:25s 695ms
二、創(chuàng)建索引
(1)創(chuàng)建索引:給user表的username字段,添加索引,索引名為username_index,此過程會(huì)花費(fèi)較長(zhǎng)的時(shí)間(相較于查詢);
create index username_index on user(username);
(2)查看索引:查看user表的索引;
show index from user;
(3)刪除索引:刪除user表的username_index索引;
drop index username_index on user;
三、創(chuàng)建索引后
創(chuàng)建索引后,再試下查詢時(shí)間,可以看到查詢速度有顯著提升
select id, username, password, sex, email from user where username='zhangsan5000025';
查詢時(shí)間:73ms
總結(jié)
需要知道以下這些:
(1)MySQL的索引,底層是用B+Tree實(shí)現(xiàn)的;
(2)索引并不是加的越多越好,添加索引會(huì)增加數(shù)據(jù)所占的空間,所以通常給查詢頻繁的字段添加索引;
(未使用索引的數(shù)據(jù)大?。?/p>
(加索引后的數(shù)據(jù)大?。?/p>
(3)MySQL中,表的主鍵、唯一約束是自動(dòng)生成的索引(其實(shí)也好理解,不建立索引,數(shù)據(jù)庫(kù)怎么能在添加數(shù)據(jù)時(shí),立刻檢索到我們添加的數(shù)據(jù)是否唯一呢?);
到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)給表添加索引的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL 表添加索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析MySQL數(shù)據(jù)庫(kù)性能優(yōu)化的六大技巧
本篇文章是對(duì)MySQL數(shù)據(jù)庫(kù)性能優(yōu)化的六大技巧進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL的一些功能實(shí)用的Linux shell腳本分享
這篇文章主要介紹了Linux系統(tǒng)下MySQL的一些實(shí)用功能的shell腳本分享,包括啟動(dòng)Memcached、binlog自動(dòng)清理和修復(fù)主從同步這樣三個(gè)簡(jiǎn)單的實(shí)例,需要的朋友可以參考下2015-12-12淺談mysql explain中key_len的計(jì)算方法
下面小編就為大家?guī)硪黄獪\談mysql explain中key_len的計(jì)算方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04mysql分頁(yè)的limit參數(shù)簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于mysql分頁(yè)的limit參數(shù)的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12windows mysql 自動(dòng)備份的幾種方法匯總
本篇文章主要對(duì)windows mysql 自動(dòng)備份的幾種方法進(jìn)行整理,具有很好的參考價(jià)值,需要的朋友一起來看下吧2016-12-12探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解
本篇文章是對(duì)sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié)
本文主要介紹了mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié),文中通過圖表代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08