歪枣网数据库设计-千万级别海量数据查询效率优化
由于歪棗網上的金融數據查詢接口,主要是股票、基金的歷史數據,數據量其實是非常大的,有興趣的可以去逛逛網站。一只股票的 歷史日/周/月K線數據將近三萬條(包括前復權、不復權、后復權),將近上億條數據。SQL查詢語句設計不合理,查詢K線數據其實是非常耗時。以前沒弄過大數據的查詢,查詢一條K線數據居然耗時兩分鐘,嚇了歪哥一跳。后面當然就是Mysql調優了。
大體做了幾件事。
1、將查詢的Mysql語句打印出來,由于使用的是Springboot 集成的Jpa框架配置文件中將開關打開spring.jpa.show-sql=true
2、使用explain 關鍵字查看mysql執行sql語句的時候,是否使用索引,使用了哪類索引等。explain關鍵字還挺有用,可以網上了解更多。使用索引,將大大減少查詢時間。
索引其實就是空間換時間,如果你重新創建一個索引,你會發現會占用你很大的磁盤空間。索引可以通俗的理解為書的目錄,可以方便快速定位。
3、合理設計mysql數據表
每個字段設計,采用合適的數據類型,比如能用一個字節的TINYINT,就不需要用4個字節的INT類型。
日期類型盡量用Date,不需要用字符類型存儲,Date類型只占用四個字節。關于Mysql字段類型,可以網上查詢下。
4、建立合理的索引
首先根據業務需要,長用來作為查詢條件的幾個字段,可以考慮作為一個索引。還有就是主鍵索引,在插入數據的時候,由于設計了主鍵,不必要再查詢或者刪除歷史數據,直接覆蓋即可,也不會帶入臟數據。
最后查詢效率提升了N倍,有興趣的可以上歪棗網體驗一把效率。
網站:www.waizaowang.com
歪哥將下一篇博客將列出一些整理了些資料,關于Mysql查詢效率優化的,資料來源網上。
總結
以上是生活随笔為你收集整理的歪枣网数据库设计-千万级别海量数据查询效率优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: logrotate管理nginx日志文件
- 下一篇: MySQL varchar和char类型