Quantcast
Channel: Planet MySQL
Viewing all articles
Browse latest Browse all 1081

MySQL 5.7.8 透過InnoDBページ圧縮のサイズ計り比べ…の前に、取り敢えず有効化するところまで

$
0
0
今までのInnoDB圧縮(ROW_FORMAT= Compress)は InnoDBテーブル圧縮 、新しいやつは InnoDBページ圧縮 としてドキュメントに載っている。

今までのInnoDBテーブル圧縮はzlibのみの対応で、圧縮後のデータの詰め直しなども全部InnoDB側で対応していた。そのデータの詰め直しをファイルシステム側に任せることで、CPUバウンドだった圧縮処理を軽く/圧縮効率を良くしよう、というアレだと認識している。
詳しくはこちら。 InnoDB Transparent PageIO Compression | MySQL Server Blog


CentOS 6.6(2.6.32-504.30.3.el6.x86_64)のext4ではsupport not availableと言われるのが

$ less /var/log/mysqld.log
..
2015-07-22T09:23:24.769459Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.8-rc-log) starting as process 403 ...
2015-07-22T09:23:24.774797Z 0 [Note] InnoDB: PUNCH HOLE support not available
..


CentOS 7.1(3.10.0-229.el7.x86_64)のxfsだとちゃんと有効になっているぽい。

$ less /var/log/mysqld.log
..
2015-07-22T09:21:44.321951Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.8-rc) starting as process 3355 ...
2015-07-22T09:21:44.326762Z 0 [Note] InnoDB: PUNCH HOLE support available
..


$ mysql -sse "show tables" tpcc | while read table ; do
> mysql -e "ALTER TABLE $table Compression= 'zlib'"
> done

mysql> SHOW TABLE STATUS\G
*************************** 1. row ***************************
Name: customer
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2015-07-22 18:45:09
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options: COMPRESS="zlib"
Comment:
..

Create_options: COMPRESS="zlib"になった。



20WH突っ込んでみたところ。


無圧縮。

$ ll -h
total 1.8G
-rw-r----- 1 mysql mysql 9.2K Jul 22 19:34 customer.frm
-rw-r----- 1 mysql mysql 392M Jul 22 19:33 customer.ibd
-rw-r----- 1 mysql mysql 65 Jul 22 19:24 db.opt
-rw-r----- 1 mysql mysql 8.8K Jul 22 19:34 district.frm
-rw-r----- 1 mysql mysql 96K Jul 22 19:32 district.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 19:34 history.frm
-rw-r----- 1 mysql mysql 72M Jul 22 19:34 history.ibd
-rw-r----- 1 mysql mysql 8.5K Jul 22 19:24 item.frm
-rw-r----- 1 mysql mysql 17M Jul 22 19:24 item.ibd
-rw-r----- 1 mysql mysql 8.5K Jul 22 19:34 new_orders.frm
-rw-r----- 1 mysql mysql 13M Jul 22 19:33 new_orders.ibd
-rw-r----- 1 mysql mysql 8.8K Jul 22 19:34 order_line.frm
-rw-r----- 1 mysql mysql 572M Jul 22 19:34 order_line.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 19:34 orders.frm
-rw-r----- 1 mysql mysql 48M Jul 22 19:33 orders.ibd
-rw-r----- 1 mysql mysql 9.0K Jul 22 19:34 stock.frm
-rw-r----- 1 mysql mysql 692M Jul 22 19:33 stock.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 19:24 warehouse.frm
-rw-r----- 1 mysql mysql 96K Jul 22 19:32 warehouse.ibd


InnoDBページ圧縮(zlib)。

$ ll -h
total 1.3G
-rw-r----- 1 mysql mysql 9.2K Jul 22 19:15 customer.frm
-rw-r----- 1 mysql mysql 392M Jul 22 19:14 customer.ibd
-rw-r----- 1 mysql mysql 65 Jul 22 18:42 db.opt
-rw-r----- 1 mysql mysql 8.8K Jul 22 19:15 district.frm
-rw-r----- 1 mysql mysql 96K Jul 22 19:05 district.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 19:15 history.frm
-rw-r----- 1 mysql mysql 72M Jul 22 19:15 history.ibd
-rw-r----- 1 mysql mysql 8.5K Jul 22 18:45 item.frm
-rw-r----- 1 mysql mysql 17M Jul 22 18:56 item.ibd
-rw-r----- 1 mysql mysql 8.5K Jul 22 19:15 new_orders.frm
-rw-r----- 1 mysql mysql 13M Jul 22 19:05 new_orders.ibd
-rw-r----- 1 mysql mysql 8.8K Jul 22 19:15 order_line.frm
-rw-r----- 1 mysql mysql 564M Jul 22 19:15 order_line.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 19:15 orders.frm
-rw-r----- 1 mysql mysql 48M Jul 22 19:14 orders.ibd
-rw-r----- 1 mysql mysql 9.0K Jul 22 19:15 stock.frm
-rw-r----- 1 mysql mysql 692M Jul 22 19:14 stock.ibd
-rw-r----- 1 mysql mysql 8.7K Jul 22 18:45 warehouse.frm
-rw-r----- 1 mysql mysql 96K Jul 22 19:04 warehouse.ibd


すいません性能とか圧縮率とかまだ真面目に調べられてますん><
PlanetMySQL Voting: Vote UP / Vote DOWN

Viewing all articles
Browse latest Browse all 1081


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>