MySQL數(shù)據(jù)庫給表添加索引的實(shí)現(xiàn)
說明:當(dāng)數(shù)據(jù)庫中的記錄數(shù)過多時(shí),查詢速度會(huì)顯著變慢。此時(shí)可以給表創(chuàng)建索引,提高查詢速度。
一、創(chuàng)建索引前
我現(xiàn)在有一張表,有1000萬條記錄,根據(jù)username值,查詢一條記錄,測試下查詢時(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)較長的時(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ù)大小)
(加索引后的數(shù)據(jù)大?。?/p>
(3)MySQL中,表的主鍵、唯一約束是自動(dòng)生成的索引(其實(shí)也好理解,不建立索引,數(shù)據(jù)庫怎么能在添加數(shù)據(jù)時(shí),立刻檢索到我們添加的數(shù)據(jù)是否唯一呢?);
到此這篇關(guān)于MySQL數(shù)據(jù)庫給表添加索引的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL 表添加索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL USAGE和SELECT權(quán)限案例深入分析
這篇文章主要介紹了PostgreSQL USAGE和SELECT權(quán)限案例深入分析,因?yàn)轫?xiàng)目需求,需要學(xué)習(xí)PostgreSQL,本人之前學(xué)習(xí)過MYSQL,臨時(shí)快速上手,盡快的去學(xué)習(xí)項(xiàng)目需要PostgREST2023-04-04MySQL主從復(fù)制的原理及配置方法(比較詳細(xì))
MySQL 的數(shù)據(jù)庫的高可用性的架構(gòu)大概有以下幾種:集群,讀寫分離,主備。而后面兩種都是通過復(fù)制來實(shí)現(xiàn)的。下面將簡單介紹復(fù)制的原理及配置,以及一些常見的問題2014-05-05MySQL更新某個(gè)字段拼接固定字符串的實(shí)現(xiàn)
在MySQL中,我們經(jīng)常需要對數(shù)據(jù)庫中的某個(gè)字段進(jìn)行更新操作,本文就來介紹一下MySQL更新某個(gè)字段拼接固定字符串的實(shí)現(xiàn),感興趣的可以了解一下2025-04-04mysql查詢字符串替換語句小結(jié)(數(shù)據(jù)庫字符串替換)
有時(shí)候我們需要對mysql的字符串進(jìn)行替換,我們就可以通過sql語句直接實(shí)現(xiàn)了,不過對于大數(shù)據(jù)量的字段不建議使用此方法2012-07-07