web企業級項目千萬級數據的優化
第一:優化你的sql和索引,詳細說明見《mysql學習筆記——4.sql優化》http://www.jianshu.com/p/add70a5168bd。
第二:加緩存memcached、redis。
第三:以上都做了後,還是慢,就做主從複製或主主複製,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要麼效率不高,要麼沒人維護,主從複製相關問題見《mysql學習筆記——1.主從複製》http://www.jianshu.com/p/937fe510b084。
第四:如果以上都做了還是慢,不要想著去做切分,mysql自帶分區表,先試試這個,對你的應用是透明的,無需更改代碼,但是sql語句是需要針對分區表做優化的,sql條件中要帶上分區條件的列,從而使查詢定位到少量的分區上,否則就會掃描全部分區,另外分區表還有一些坑,在這裡就不多說了。
第五:如果以上都做了,那就先做垂直拆分,其實就是根據你模塊的耦合度,將一個大的系統分為多個小的系統,也就是分佈式系統。
第六:才是水平切分,針對數據量大的表,這一步最麻煩,最能考驗技術水平,要選擇一個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗餘,應用也要改,sql中儘量帶sharding(分片) key,將數據定位到限定的表上去查,而不是掃描全部的表。
mysql數據庫一般都是按照這個步驟去演化的,成本也是由低到高。
相關推薦
'Python批量刪除mysql中千萬級大量數據'
"場景描述線上 mysql 數據庫裡面有張表保存有每天的統計結果,每天有1千多萬條,這是我們意想不到的,統計結果咋有這麼多。運維找過來,磁盤佔了 200G ,最後問了運營,可以只保留最近3天的,前面的數據,只能刪了。刪,怎麼刪?關注,轉發,私信小編“01”即可免費領取Pyt...
'MySQL 百萬級數據量分頁查詢方法及其優化'
"方法1: 直接使用數據庫提供的SQL語句語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N適應場景: 適用於數據量較少的情況(元組百/千級)原因/缺點: 全表掃描,速度會很慢 且 有的數據庫結果集返回不穩定(如某次返回1,2,...
'乾貨:ElasticSearch查詢億級數據毫秒級返回'
"目錄:一道面試題的引入:性能優化的殺手鐗:Filesystem Cache數據預熱冷熱分離ElasticSearch 中的關聯查詢Document 模型設計分頁性能優化一道面試題的引入:如果面試的時候碰到這樣一個面試題:ElasticSearch(以下簡稱ES) 在數據量...
'mysql的count(*)的優化,獲取千萬級數據表的總行數'
"作者:鐵柱同學來源:https://blog.csdn.net/LJFPHP/article/details/84400400一、前言這個問題是今天朋友提出來的,關於查詢一個1200w的數據表的總行數,用count(*)的速度一直提不上去。找了很多優化方案,最後另闢蹊徑,...
在一個千萬級的數據庫查尋中,如何提高查詢效率?
在一個千萬級的數據庫查尋中,如何提高查詢效率?1、數據庫設計方面: A. 對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 B. 應儘量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引...
炸!億級數據DB秒級平滑擴容
一步一步,娓娓道來。一般來說,併發量大,吞吐量大的互聯網分層架構是怎麼樣的?數據庫上層都有一個微服務,服務層記錄“業務庫”與“數據庫實例配置”的映射關係,...
Elasticsearch如何做到億級數據查詢毫秒級返回?
如果面試的時候碰到這樣一個面試題:ES 在數據量很大的情況下(數十億級別)如何提高查詢效率?這個問題說白了,就是看你有沒有實際用過 ES,因為啥?其實 E...
推薦中...