MySQL優(yōu)化:千萬級數(shù)據(jù)量根據(jù)索引優(yōu)化查詢速度
MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司。MySQL ***的關系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面MySQL是***的 RDBMS (Relational Database Management System,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件之一。
很多網(wǎng)站的重要信息都是保存在數(shù)據(jù)庫中的,用戶通過提交訪問數(shù)據(jù)庫來獲取用戶信息。如果數(shù)據(jù)庫速度很慢,將會對大大影響用戶的體驗,流失眾多的核心用戶。
今天此篇文章教你使用索引優(yōu)化查詢速度,哪怕***數(shù)據(jù)量,查詢速度也很快,幫你節(jié)省服務器的資源!
1、索 引的作用
索引通俗來講就相當于書的目錄,當我們根據(jù)條件查詢的時候,沒有索引,便需要全表掃描,數(shù)據(jù)量少還可以,一旦數(shù)據(jù)量超過百萬甚至千萬,一條查詢sql執(zhí)行往往需要幾十秒甚至更多,5秒以上就已經(jīng)讓人難以忍受了。
提升查詢速度的方向:一是提升硬件(內(nèi)存、cpu、硬盤),二是在軟件上優(yōu)化(加索引、優(yōu)化sql;優(yōu)化sql不在本文闡述范圍之內(nèi))。能在軟件上解決的,就不在硬件上解決,畢竟硬件提升代碼昂貴,性價比太低。代價小且行之有效的解決方法就是合理的加索引。索引使用得當,能使查詢速度提升上萬倍,效果驚人!
2、索 引類型
MySQL的索引有5種:
主鍵索引、普通索引、唯一索引、全文索引、組合索引(多列索引)
- 普通索引(index): 僅僅只是為了提高查詢的速度。
- 唯一索引(unique index): 防止數(shù)據(jù)出現(xiàn)重復
- 主鍵索引(primary key):引保證數(shù)據(jù)的唯一性,而且不能為NULL
- 全文索引(fulltext key):從字段中提取的特別關鍵詞
- 組合索引(多列索引):創(chuàng)建在多列上的索引
3、索引的語法
- 查看某張表的索引:show index from 表名;
- 創(chuàng)建普通索引:alter table 表名 add index 索引名 (加索引的列)
- 創(chuàng)建組合索引:alter table 表名 add index 索引名 (加索引的列1,加索引的列2)
- 刪除某張表的索引:drop index 索引名 on 表名;
4、性能測試
1)創(chuàng)建數(shù)據(jù)表
2)使用存儲過程插入一千萬條數(shù)據(jù)
3)執(zhí)行存儲過程
4)測試結果,沒有加索引
5)給username添加索引
6)測試結果,添加索引