色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 查詢增強,mysql數據表規模九千萬左右

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

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

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

無論如何,看下如何優化數據查詢吧!

①,單庫單表:

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

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

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

4,參數配置:擴大內存,調節線程池參數等等!

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

②,單庫多表:

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

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

③,多庫多表:

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

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

比如我們現在的數據庫設計為8庫1024表,你的將近一億的數據在我們的單張表里面只有不到10W!

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

關于多線程,分布式,微服務,數據庫,緩存的更多干貨,會繼續分享,敬請關注。。