mysql Partition(分区)初探
生活随笔
收集整理的這篇文章主要介紹了
mysql Partition(分区)初探
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?表數(shù)據(jù)量大的時(shí)候一般都考慮水平拆分,即所謂的sharding.不過mysql本身具有分區(qū)功能,可以實(shí)現(xiàn)一定程度?
的水平切分.mysql是具有MERGE這種引擎的,就是把一些結(jié)構(gòu)相同的MyIASM表作為一個(gè)表使用,但是我覺得 MERGE不如partition實(shí)用,
因?yàn)镸ERGE會(huì)在所有的底層表上查詢,而partition只在相應(yīng)的分區(qū)上查詢.
建立了兩個(gè)表,分別為分區(qū)和未分區(qū)的,分區(qū)表按年進(jìn)行分區(qū).
Sql代碼
用sp向分區(qū)表和普通表各插入了90w條隨機(jī)數(shù)據(jù).
用mysqlslap進(jìn)行下測(cè)試
不用分區(qū)表
Sql代碼
引用
Benchmark
Average number of seconds to run all queries: 0.881 seconds
Minimum number of seconds to run all queries: 0.062 seconds
Maximum number of seconds to run all queries: 3.844 seconds
Number of clients running queries: 1
Average number of queries per client: 2
Benchmark
Average number of seconds to run all queries: 0.703 seconds
Minimum number of seconds to run all queries: 0.062 seconds
Maximum number of seconds to run all queries: 1.922 seconds
Number of clients running queries: 1
Average number of queries per client: 2
Benchmark
Average number of seconds to run all queries: 1.250 seconds
Minimum number of seconds to run all queries: 0.109 seconds
Maximum number of seconds to run all queries: 4.032 seconds
Number of clients running queries: 1
Average number of queries per client: 2
用分區(qū)表
Sql代碼
引用
Benchmark
Average number of seconds to run all queries: 0.068 seconds
Minimum number of seconds to run all queries: 0.047 seconds
Maximum number of seconds to run all queries: 0.110 seconds
Number of clients running queries: 1
Average number of queries per client: 2
Benchmark
Average number of seconds to run all queries: 0.250 seconds
Minimum number of seconds to run all queries: 0.031 seconds
Maximum number of seconds to run all queries: 1.078 seconds
Number of clients running queries: 1
Average number of queries per client: 2
Benchmark
Average number of seconds to run all queries: 0.046 seconds
Minimum number of seconds to run all queries: 0.046 seconds
Maximum number of seconds to run all queries: 0.047 seconds
Number of clients running queries: 1
Average number of queries per client: 2
看來(lái)性能還是有一定的提升的.
執(zhí)行
Sql代碼
可以看出這個(gè)query只掃描了p2012這個(gè)分區(qū).
而且分區(qū)表的好處在于維護(hù)比較方便.比如2009年的數(shù)據(jù)不需要了,分區(qū)表的方法為
Sql代碼
不到1s就行了
普通表為
Sql代碼
用了10.25s左右?
轉(zhuǎn)載于:https://blog.51cto.com/daheyuan/1131719
總結(jié)
以上是生活随笔為你收集整理的mysql Partition(分区)初探的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SAS NOTES】if then和i
- 下一篇: PostgreSQL函数如何返回数据集