欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql怎么壓縮數(shù)據(jù) mysql 數(shù)據(jù)壓縮

如何對Mysql 數(shù)據(jù)表壓縮

633M -rw-rw---- 1 mysql mysql 632M Oct 25 17:51 url_comment_0.ibd

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了克什克騰免費建站歡迎大家使用!

12K -rw-rw---- 1 mysql mysql 8.7K Oct 25 18:16 url_comment_0.frm

178M -rw-rw---- 1 mysql mysql 178M Oct 25 18:53 url_comment_0.MYD

99M -rw-rw---- 1 mysql mysql 98M Oct 25 18:53 url_comment_0.MYI結論:由上面數(shù)據(jù)可知innodb plugin能有效壓縮innodb數(shù)據(jù)文件,近50%,另外相同的情況下使用MyISAM表也可較大的減少數(shù)據(jù)大小(178+99633M).

當然實際的壓縮比例和表的結構等有關,如字段為varchar會有較大的壓縮比,而int類型壓縮率會低些~

其它的壓縮技術還可以使用myisampack,ARCHIVE,infobright等技術,但是這些技術常是用于數(shù)據(jù)表歸檔操作,令數(shù)據(jù)表有較大壓縮比,但有不能進行update,insert操作等缺點,不在本文討論范圍~

MySQL的備份與還原,非常規(guī)備份,全量備份,增量備份

1:官方百萬級別的測試數(shù)據(jù)庫:

官方測試數(shù)據(jù)庫github網(wǎng)址:

下載到目錄,解壓即可,運行命令:

2:自己創(chuàng)建簡單測試數(shù)據(jù)庫:

快速隨機生成測試語言的網(wǎng)站:

選擇sql和想生成的字段,點擊生成Generate!生成即可。

在MySQL輸入生成的語句即可。

3:測試備份還原時用到的命令

刪庫跑路測試(先備份好)

還原后查詢庫的表數(shù)據(jù)是否完整。

采用復制整個數(shù)據(jù)存放目錄

1:查看數(shù)據(jù)庫數(shù)據(jù)存放位置

有兩種方法:

1):在數(shù)據(jù)庫中用命令 show variables like 'datadir'; 查看

2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置

Linux中查看配置文件

2:復制目錄或者目錄下某個數(shù)據(jù)庫名

3:還原時直接復制文件夾到數(shù)據(jù)庫目錄即可

mysqldump又可叫做全量備份。

參數(shù) --databases 同 -B ,單獨一個庫,也可省略。

1、備份命令mysqldump格式

格式:mysqldump -h主機名 -P端口 -u用戶名 -p密碼 database 數(shù)據(jù)庫名 文件名.sql

備份testDatabase數(shù)據(jù)庫

2、備份MySQL數(shù)據(jù)庫為帶刪除表的格式

備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動刪除原有數(shù)據(jù)庫。

3、直接將MySQL數(shù)據(jù)庫壓縮備份

備份并壓縮

4、備份MySQL數(shù)據(jù)庫某個(些)表

備份testDatabase中的myTable表,不需要用參數(shù) --databases 或者 -B

5、同時備份多個MySQL數(shù)據(jù)庫

同時備份testDatabase和 employees兩個庫

6、備份服務器上所有數(shù)據(jù)庫

參數(shù) --all-databases 同 -A

7、還原MySQL數(shù)據(jù)庫的命令

1) 不指定數(shù)據(jù)名還原,默認生成原數(shù)據(jù)庫名稱,還原所有數(shù)據(jù)庫。

2) 指定數(shù)據(jù)名還原,還原指定單個數(shù)據(jù)庫,需在數(shù)據(jù)庫種預先創(chuàng)建一個testDatabase名稱。

3) 還原壓縮的MySQL數(shù)據(jù)庫

4) 進入數(shù)據(jù)庫用source導入

增量備份是針對于數(shù)據(jù)庫的bin-log日志進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日志。

1:查看是否開啟bin-log日志

進入mysql輸入命令可查看。

顯示如下為開啟狀態(tài),日志文件在/var/lib/mysql/以binlog.00001的格式保存。

如未開啟,需要在配置文件種配置

2:查看目前使用的bin-log日志文件

進入mysql查看命令。

顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。

查看當前testDatabase的表myTable數(shù)據(jù)如下,

3:刷新日志,使用新的日志文件(備份)

在命令端執(zhí)行命令

日志文件從 binlog.000022 變?yōu)?binlog.000023

這時相當與已經(jīng)備份成功,備份文件即為上次的binlog.000022日志文件。

4:刪除數(shù)量,從日志還原數(shù)據(jù)

1) 刪除ABC行

查詢以及沒有ABC行列。

2) 恢復數(shù)據(jù)ABC行

退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日志狀態(tài)。

進入數(shù)據(jù)庫再次查看數(shù)據(jù),ABC已經(jīng)恢復。

增量備份完成。

如何壓縮Mysql數(shù)據(jù)庫

壓縮表從名字上來看,簡單理解為壓縮后的表,也就是把原始表根據(jù)一定的壓縮算法按照一定的壓縮比率壓縮后生成的表。

1.1 壓縮能力強的產(chǎn)品

表壓縮后從磁盤占用上看要比原始表要小很多。如果你熟悉列式數(shù)據(jù)庫,那對這個概念一定不陌生。比如,基于 PostgreSQL 的列式數(shù)據(jù)庫 Greenplum;早期基于 MySQL 的列式數(shù)據(jù)庫 inforbright;或者 Percona 的產(chǎn)品 tokudb 等,都是有壓縮能力非常強的數(shù)據(jù)庫產(chǎn)品。

1.2 為什么要用壓縮表?

情景一:磁盤大小為 1T,不算其他的空間占用,只能存放 10 張 100G 大小的表。如果這些表以一定的比率壓縮后,比如每張表從 100G 壓縮到 10G,那同樣的磁盤可以存放 100 張表,表的容量是原來的 10 倍。情景二:默認 MySQL 頁大小 16K,而 OS 文件系統(tǒng)一般塊大小為 4K,所以在 MySQL 在刷臟頁的過程中,有一定的概率出現(xiàn)頁沒寫全而導致數(shù)據(jù)壞掉的情形。比如 16K 的頁寫了 12K,剩下 4K 沒寫成功,導致 MySQL 頁數(shù)據(jù)損壞。這個時候就算通過 Redo Log 也恢復不了,因為幾乎有所有的關系數(shù)據(jù)庫采用的 Redo Log 都記錄了數(shù)據(jù)頁的偏移量,此時就算通過 Redo Log 恢復后,數(shù)據(jù)也是錯誤的。所以 MySQL 在刷臟數(shù)據(jù)之前,會把這部分數(shù)據(jù)先寫入共享表空間里的 DOUBLE WRITE BUFFER 區(qū)域來避免這種異常。此時如果 MySQL 采用壓縮表,并且每張表頁大小和磁盤塊大小一致,比如也是 4K,那 DOUBLE WRITE BUFFER 就可以不需要,這部分開銷就可以規(guī)避掉了。查看文件系統(tǒng)的塊大小:

root@ytt-pc:/home/ytt#??tune2fs?-l?/dev/mapper/ytt--pc--vg-root??|?grep?-i?'block?size'Block size: ? ? ? ? ? ? ? 4096

1.3 壓縮表的優(yōu)勢

壓縮表的優(yōu)點非常明顯,占用磁盤空間小!由于占用空間小,從磁盤置換到內(nèi)存以及之后經(jīng)過網(wǎng)絡傳輸都非常節(jié)省資源。

簡單來講:節(jié)省磁盤 IO,減少網(wǎng)絡 IO。

1.4 壓縮表的缺陷

當然壓縮表也有缺點,壓縮表的寫入(INSERT,UPDATE,DELETE)比普通表要消耗更多的 CPU 資源。

壓縮表的寫入涉及到解壓數(shù)據(jù),更新數(shù)據(jù),再壓縮數(shù)據(jù),比普通表多了解壓和再壓縮兩個步驟,壓縮和解壓縮需要消耗一定的 CPU 資源。所以需要選擇一個比較優(yōu)化的壓縮算法。

1.5 MySQL 支持的壓縮算法

這塊是 MySQL 所有涉及到壓縮的基礎,不僅僅用于壓縮表,也用于其它地方。比如客戶端請求到 MySQL 服務端的數(shù)據(jù)壓縮;主從之間的壓縮傳輸;利用克隆插件來復制數(shù)據(jù)庫操作的壓縮傳輸?shù)鹊取?/p>

從下面結果可以看到 MySQL 支持的壓縮算法為 zlib 和 zstd,MySQL 默認壓縮算法為 zlib,當然你也可以選擇非 zlib 算法,比如 zstd。至于哪種壓縮算法最優(yōu),暫時沒辦法簡單量化,依賴表中的數(shù)據(jù)分布或者業(yè)務請求。

MYSQL表壓縮和整理

MYSQL表壓縮和整理如下:

633M

-rw-rw----

1

mysql

mysql

632M

Oct

25

17:51

url_comment_0.ibd

12K

-rw-rw----

1

mysql

mysql

8.7K

Oct

25

18:16

url_comment_0.frm

178M

-rw-rw----

1

mysql

mysql

178M

Oct

25

18:53

url_comment_0.MYD

99M

-rw-rw----

1

mysql

mysql

98M

Oct

25

18:53

url_comment_0.MYI

結論:由上面數(shù)據(jù)可知innodb

plugin能有效壓縮innodb數(shù)據(jù)文件,近50%,另外相同的情況下使用MyISAM表也可較大的減少數(shù)據(jù)大小(178+99633M).

當然實際的壓縮比例和表的結構等有關,如字段為varchar會有較大的壓縮比,而int類型壓縮率會低些。

網(wǎng)頁標題:mysql怎么壓縮數(shù)據(jù) mysql 數(shù)據(jù)壓縮
URL鏈接:http://chinadenli.net/article14/dodpdge.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站改版做網(wǎng)站微信公眾號App開發(fā)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司