msql用分表優化2億資料查詢速度

2021-08-11 14:10:28 字數 658 閱讀 4231

背景:

需要給大約2億多的資料實現分頁展示查詢。

實際效果:查詢速度一次大概要5分鐘

處理方式:

1.換mysql資料庫引擎myisam

myisam適合:

(1)做很多count 的計算;

(2)插入不頻繁,查詢非常頻繁;

(3)沒有事務。

innodb適合:

(1)可靠性要求比較高,或者要求事務;

(2)表更新和查詢都相當的頻繁,並且表鎖定的機會比較大的情況指定資料引擎的建立

讓所有的靈活性成為可能的開關是提供給ansi sql的mysql擴充套件——type引數。mysql能夠讓你在**這一層指定資料庫引擎,所以它們有時候也指的是table formats

2.分表:把當前大表分成2000w乙個表的多個子表

步驟:建子表 對應的流水主鍵要和大表的一致,給子表插入的時候可以根據mysql的分頁取資料(insert into 子表(xx,xx,xx)  select xx,xx,xx from 主  表 limit 0,2000)

3.給查詢的字段建立索引   alter table `table_name` add index index_name ( `column` ) 

億級海量單庫分表查詢優化演算法

1.拆分表資料 因為目前資料庫部分表資料快破億了,所以到了必須拆表的地步了,把單錶比如biz process目前7000萬的資料,按照時間段平均拆分到biz process1,到biz process18,每張表400萬,因為bat 單錶分割最好不超過500萬。2.建立全域性拆表記錄表 sys su...

用2GB 處理21億的資料的排序

本文的的寫作是在csdn 看到了 漫畫 面試官讓我用 2gb 記憶體給 20億個整數 需要8gb記憶體 排序,我該咋整?這麼一篇文章,這篇文章說的外部排序的方法。但是,基於愛研究的精神,考慮有沒有一種方法比外部排序更快。c 的bitset,但此處並未使用bitset 因為不熟悉。點陣圖每一位占用1b...

2mysql分表 詳解mysql資料表的分表策略

mysql分表方法 方法一 做資料庫集群!主從資料庫 雙向熱備份 或一對多的資料庫實時備份策略 這樣可將資料庫查詢分攤到幾個伺服器去 可跟伺服器負載均衡結合起來架構 優點 擴充套件性好,沒有多個分表後的複雜操作 php 缺點 單個表的資料量還是沒有變,一次操作所花的時間還是那麼多,硬體開銷大。方法二...