最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql的數(shù)據(jù)壓縮性能對(duì)比詳情

 更新時(shí)間:2021年11月06日 15:19:11   作者:IT技術(shù)博客  
這篇文章主要介紹了mysql的數(shù)據(jù)壓縮性能對(duì)比,今天對(duì)這兩種方式分別進(jìn)行了測(cè)試,對(duì)比了二者在磁盤占用以及查詢性能方面各自的優(yōu)劣,下面我們大家一起進(jìn)入文章了解詳細(xì)內(nèi)容,需要的朋友也可以參考一下

數(shù)據(jù)魔方需要的數(shù)據(jù),一旦寫入就很少或者根本不會(huì)更新。這種數(shù)據(jù)非常適合壓縮以降低磁盤占用。MySQL本身提供了兩種壓縮方式――archive引擎以及針對(duì)MyISAM引擎的myisampack方式。今天對(duì)這兩種方式分別進(jìn)行了測(cè)試,對(duì)比了二者在磁盤占用以及查詢性能方面各自的優(yōu)劣。至于為什么做這個(gè),你們應(yīng)該懂的,我后文還會(huì)介紹。且看正文:

1. 測(cè)試環(huán)境

1.1 軟硬件

一臺(tái) 64位 2.6.18-92 內(nèi)核Linux開發(fā)機(jī),4G內(nèi)存,4個(gè)2800Mhz Dual-Core AMD Opteron(tm) Processor 2220 CPU。

MySQL放在一塊7200轉(zhuǎn)SAT硬盤,未做raid

MySQL未做任何優(yōu)化, 關(guān)閉了query cache ,目的在于避免query cache對(duì)測(cè)試結(jié)果造成干擾。

1.2 表結(jié)構(gòu)

2424753條記錄,生產(chǎn)環(huán)境某一個(gè)分片的實(shí)際數(shù)據(jù);

分別建立了(partition_by1,idx_rank) 和 (partition_by1,chg_idx)的聯(lián)合索引,其中 partition_by1為32長度的varchar類型 ,用于檢索;其余兩個(gè)字段均為浮點(diǎn)數(shù),多用于排序;

autokid作為子增列,充當(dāng)PRIMARY KEY,僅作為數(shù)據(jù)裝載時(shí)原子性保證用,無實(shí)際意義。

2. 測(cè)試目的

2.1 壓縮空間對(duì)比

壓縮率越大,占用的磁盤空間越小,直接降低數(shù)據(jù)的存儲(chǔ)成本;

2.2 查詢性能對(duì)比

壓縮后查詢性能不應(yīng)該有顯著降低。Archive是不支持索引的,因此性能降低是必然的,那么我們也應(yīng)該心里有個(gè)譜,到底降低了多少,能不能接受。

3. 測(cè)試工具

3.1 mysqlslap

官方的工具當(dāng)然是不二之選。關(guān)于mysqlslap的介紹請(qǐng)參考 官方文檔 。

3.2 測(cè)試query

截取生產(chǎn)環(huán)境訪問topranks_v3表的實(shí)際SQL共9973條,從中抽取訪問量較大的7條,并發(fā)50,重復(fù)執(zhí)行10次。命令如下:

./mysqlslap --defaults-file=../etc/my.cnf -u**** -p**** -c50 -i10 -q ../t.sql --debug-info

4.測(cè)試結(jié)論

比較項(xiàng) 磁盤空間 耗時(shí)(秒) CPU Idle LOAD 并發(fā)
基準(zhǔn)表(MyISAM) 403956004 2.308 30 15 50
ARCHIVE 75630745 >300 75 4 1
PACK 99302109 2.596 30 22 50

根據(jù)上面的表格給出的測(cè)試數(shù)據(jù),我們簡單得出以下結(jié)論:

  • 針對(duì)測(cè)試表,Archive表占用空間約為之前的18.7%,myisampack后空間占用約為之前的24.6%;二者相差不多,單純從空間利用情況來看,我們似乎需要選擇archive表;
  • 我們?cè)倏床樵冃阅?,與基準(zhǔn)表進(jìn)行對(duì)比。無論在總耗時(shí)還是系統(tǒng)負(fù)載方面,50并發(fā)下的pack表查詢性能與基準(zhǔn)表相當(dāng); 而archive表在單并發(fā)情況下耗時(shí)超過了5分鐘 (實(shí)在等不了了,kill之)!

那么,我們似乎可以得出結(jié)論,針對(duì)需要在線查詢的表,ARCHIVE引擎基本上可以不考慮了。

為什么這個(gè)測(cè)試過程中ARCHIVE引擎如此地慢呢?

我們知道,mysql提供archive這種存儲(chǔ)引擎是為了降低磁盤開銷,但還有一個(gè)前提,那就是被歸檔的數(shù)據(jù)不需要或者很少被在線查詢,偶爾的查詢慢一些也是沒關(guān)系的。鑒于上述原因,archive表是不允許建立自增列之外的索引的。

有了這個(gè)共識(shí),我們拿一條測(cè)試SQL來分析一下不用索引前后的查詢性能差別為什么這么大。

在我們的測(cè)試SQL中有這么一條:

SELECT c1,c2,...,cn FROM  mysqlslap.rpt_topranks_v3
WHERE ... AND partition_by1 = '50008090'
ORDER BY added_quantity3 DESC
LIMIT 500


我們前邊說過,測(cè)試的這個(gè)表在partition_by1這個(gè)字段上建立了索引,那么,我們初步判斷在基準(zhǔn)表和myisampack表上,這個(gè)查詢應(yīng)該用到了partition_by1的索引; EXPLAIN 一下:

mysql> EXPLAIN
    -> SELECT ... FROM  mysqlslap.rpt_topranks_v3
    -> WHERE ... AND partition_by1 = '50008090'
    -> ORDER BY added_quantity3 DESC
    -> LIMIT 500\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        TABLE: rpt_topranks_v3
         type: ref
possible_keys: idx_toprank_pid,idx_toprank_chg
          KEY: idx_toprank_pid
      key_len: 99
          ref: const
         rows: 2477
        Extra: USING WHERE; USING filesort
1 row IN SET (0.00 sec)

正如我們所料,這個(gè)查詢用到了建立在partition_by1這個(gè)字段上的索引,匹配的目標(biāo)行數(shù)為2477,然后還有一個(gè)在added_quantity3字段上的排序。由于added_quantity3沒有索引,所以用到了filesort。

我們?cè)倏匆幌逻@條SQL在歸檔表上的 EXPLAIN 結(jié)果:

mysql> EXPLAIN
    -> SELECT ... FROM  mysqlslap.rpt_topranks_v3_<strong>archive</strong>
    -> WHERE ... AND partition_by1 = '50008090'
    -> ORDER BY added_quantity3 DESC
    -> LIMIT 500\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        TABLE: rpt_topranks_v3_archive
         type: ALL
possible_keys: NULL
          KEY: NULL
      key_len: NULL
          ref: NULL
         rows: 2424753
        Extra: USING WHERE; USING filesort
1 row IN SET (0.00 sec)


EXPLAIN 說:“我沒有索引可用,所以只能全表掃描2424753行記錄,然后再來個(gè)filesort?!蹦阋非笮阅?,那顯然是委屈MySQL了。

到此這篇關(guān)于mysql的數(shù)據(jù)壓縮性能對(duì)比詳情的文章就介紹到這了,更多相關(guān)mysql的數(shù)據(jù)壓縮性能對(duì)比內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql誤刪root用戶或者忘記root密碼解決方法

    mysql誤刪root用戶或者忘記root密碼解決方法

    mysql誤刪root用戶或者忘記root密碼解決方法,需要的朋友可以參考下。
    2011-05-05
  • MySQL切分函數(shù)substring()的具體使用

    MySQL切分函數(shù)substring()的具體使用

    這篇文章主要介紹了MySQL切分函數(shù)substring()的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL的字符集操作命令總結(jié)

    MySQL的字符集操作命令總結(jié)

    這篇文章主要介紹了MySQL的字符集操作命令總結(jié),包括各種查看數(shù)據(jù)庫、數(shù)據(jù)表等查詢命令,需要的朋友可以參考下
    2014-04-04
  • Mysql數(shù)據(jù)庫清理binlog日志命令詳解

    Mysql數(shù)據(jù)庫清理binlog日志命令詳解

    這篇文章主要給大家介紹了Mysql數(shù)據(jù)庫清理binlog日志命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • weblogic服務(wù)建立數(shù)據(jù)源連接測(cè)試更新mysql驅(qū)動(dòng)包的問題及解決方法

    weblogic服務(wù)建立數(shù)據(jù)源連接測(cè)試更新mysql驅(qū)動(dòng)包的問題及解決方法

    WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java應(yīng)用服務(wù)器,這篇文章主要介紹了weblogic服務(wù)建立數(shù)據(jù)源連接測(cè)試更新mysql驅(qū)動(dòng)包,需要的朋友可以參考下
    2022-01-01
  • 30種SQL語句優(yōu)化的方法匯總

    30種SQL語句優(yōu)化的方法匯總

    這篇文章從30個(gè)方面,分享了sql優(yōu)化的一些小技巧,希望對(duì)你有所幫助,需要的朋友可以參考下
    2022-10-10
  • mysql嵌套查詢和聯(lián)表查詢優(yōu)化方法

    mysql嵌套查詢和聯(lián)表查詢優(yōu)化方法

    本文描述了mysql嵌套查詢和聯(lián)表查詢優(yōu)化的方法,有些情況可以使用這種優(yōu)化方法,而有些情況,這種方法就無能為力了
    2013-02-02
  • MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理

    MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理

    這篇文章主要介紹了MySQL中MVCC機(jī)制的實(shí)現(xiàn)原理,MVCC多版本并發(fā)控制,MySQL中一種并發(fā)控制的方法,他主要是為了提高數(shù)據(jù)庫的讀寫性能,用更好的方式去處理讀寫沖突
    2022-08-08
  • Mysql分區(qū)表的管理與維護(hù)

    Mysql分區(qū)表的管理與維護(hù)

    改變一個(gè)表的分區(qū)方案只需使用alter table 加 partition_options 子句就可以了。這篇文章主要介紹了Mysql分區(qū)表的管理與維護(hù),非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧,需要的朋友可以參考下
    2016-08-08
  • MySQL的23個(gè)需要注意的地方

    MySQL的23個(gè)需要注意的地方

    本文將為大家介紹的是MySQL數(shù)據(jù)庫的23個(gè)特別注意事項(xiàng),希望各位DBA能從中得到一些啟發(fā)。
    2010-08-08

最新評(píng)論

青川县| 铜陵市| 河津市| 天峻县| 朝阳市| 汉中市| 元阳县| 平顶山市| 孝昌县| 咸阳市| 徐水县| 石景山区| 通河县| 扎囊县| 清徐县| 泸州市| 库尔勒市| 常州市| 读书| 翁源县| 深圳市| 临夏市| 申扎县| 宁德市| 肇东市| 莱州市| 紫云| 黄陵县| 泊头市| 浪卡子县| 莆田市| 大余县| 文化| 镇雄县| 西宁市| 彭州市| 迭部县| 旬邑县| 武城县| 依兰县| 石楼县|