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