欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢增強,mysql數(shù)據(jù)表規(guī)模九千萬左右

錢瀠龍2年前24瀏覽0評論
mysql 查詢增強,mysql數(shù)據(jù)表規(guī)模九千萬左右?

我的天啦,一個表九千萬也是了不得了!

我上家公司明確規(guī)定,一張表不能超過5000萬,因為查詢效率會有更大的降低!

無論如何,看下如何優(yōu)化數(shù)據(jù)查詢吧!

①,單庫單表:

1,加索引,一個好的索引能用空間換取查詢時間的大為降低!

2,使用存儲過程:減少sql編譯的時間!

3,優(yōu)化sql:包括聯(lián)合查詢的指向,where,order語句使用索引字段,減少使用多表聯(lián)合查詢,不要使用select *等等!

4,參數(shù)配置:擴大內(nèi)存,調(diào)節(jié)線程池參數(shù)等等!

5,開啟緩存:開啟二級緩存,三級緩存,提升查詢效率!

②,單庫多表:

使用水平拆分(比如按月份),將表分為12張表,然后在代碼端按照月份訪問相應月份的表!

使用垂直拆分:很多字段只是作為保存記錄用,(像一些約定,備注啥的字段往往很大),可以將查詢中常常用到的字段放在常用的一張表中做查詢,另一些字段放另一張表中存儲,通過某個唯一索引字段聯(lián)系起來,可以保證查詢效率大為提升(因為磁盤IO減少)!

③,多庫多表:

①,主從讀寫分離:表中數(shù)據(jù)雖然還是一致,但是由于多個從庫讀,主庫寫數(shù)據(jù),大大減少共享鎖的性能開銷!

②,分庫分表:指定一個字段作為,分庫字段,利用hash值或者其它策略,分布在不同的庫里面,在按照相應分布策略(比如上面的水平拆分或者垂直拆分),分散到不同的表里!

比如我們現(xiàn)在的數(shù)據(jù)庫設(shè)計為8庫1024表,你的將近一億的數(shù)據(jù)在我們的單張表里面只有不到10W!

雖然理論上,一張表的大小不做任何限制,但是基于查詢效率,索引性能等,不宜超出5000萬數(shù)據(jù)!

關(guān)于多線程,分布式,微服務,數(shù)據(jù)庫,緩存的更多干貨,會繼續(xù)分享,敬請關(guān)注。。