MySQL優化:千萬級數據量根據索引優化查詢速度

MySQL優化:千萬級數據量根據索引優化查詢速度

MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型數據庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。

很多網站的重要信息都是保存在數據庫中的,用戶通過提交訪問數據庫來獲取用戶信息。如果數據庫速度很慢,將會對大大影響用戶的體驗,流失眾多的核心用戶。

今天此篇文章教你使用索引優化查詢速度,哪怕千萬級數據量,查詢速度也很快,幫你節省服務器的資源!

1、索 引的作用

索引通俗來講就相當於書的目錄,當我們根據條件查詢的時候,沒有索引,便需要全表掃描,數據量少還可以,一旦數據量超過百萬甚至千萬,一條查詢sql執行往往需要幾十秒甚至更多,5秒以上就已經讓人難以忍受了。

提升查詢速度的方向:一是提升硬件(內存、cpu、硬盤),二是在軟件上優化(加索引、優化sql;優化sql不在本文闡述範圍之內)。能在軟件上解決的,就不在硬件上解決,畢竟硬件提升代碼昂貴,性價比太低。代價小且行之有效的解決方法就是合理的加索引。索引使用得當,能使查詢速度提升上萬倍,效果驚人!

2、索 引類型

MySQL的索引有5種:

主鍵索引、普通索引、唯一索引、全文索引、組合索引(多列索引)

  • 普通索引(index): 僅僅只是為了提高查詢的速度。
  • 唯一索引(unique index): 防止數據出現重複
  • 主鍵索引(primary key):引保證數據的唯一性,而且不能為NULL
  • 全文索引(fulltext key):從字段中提取的特別關鍵詞
  • 組合索引(多列索引):創建在多列上的索引

3、索引的語法

  • 查看某張表的索引:show index from 表名;
  • 創建普通索引:alter table 表名 add index 索引名 (加索引的列)
  • 創建組合索引:alter table 表名 add index 索引名 (加索引的列1,加索引的列2)
  • 刪除某張表的索引:drop index 索引名 on 表名;

4、性能測試

1)創建數據表

MySQL優化:千萬級數據量根據索引優化查詢速度

MySQL優化:千萬級數據量根據索引優化查詢速度

2)使用存儲過程插入一千萬條數據

MySQL優化:千萬級數據量根據索引優化查詢速度

3)執行存儲過程

MySQL優化:千萬級數據量根據索引優化查詢速度

4)測試結果,沒有加索引

MySQL優化:千萬級數據量根據索引優化查詢速度

5)給username添加索引

MySQL優化:千萬級數據量根據索引優化查詢速度

6)測試結果,添加索引

MySQL優化:千萬級數據量根據索引優化查詢速度

為了讓學習變得輕鬆、高效,今天給大家免費分享一套阿里架構師傳授的一套教學資源。幫助大家在成為架構師的道路上披荊斬棘。

這套視頻課程詳細講解了(Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構)等這些成為架構師必備的內容!

而且還把框架需要用到的各種程序進行了打包,根據基礎視頻可以讓你輕鬆搭建分佈式框架環境,像在企業生產環境一樣進行學習和實踐。

MySQL優化:千萬級數據量根據索引優化查詢速度

後臺私信回覆 “ 架構 ” 就可以馬上免費獲得這套價值一萬八的內部教材!


分享到:


相關文章: