SlideShare a Scribd company logo
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Partition Engine
〜 中長期的なデータ蓄積とMySQL8.0以降の留意点〜
MySQL Global Business Unit
Master Principal Sales Consultant/Shinya Sugiyama
Updated: 2018/02/20
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも
のではない為、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
CREATE VALUE
FROM DATA
データ蓄積用データベースとしてのMySQL
データ蓄積
機能 概要
MySQL データベース
MySQL Cluster データベース: 書き込み自動シャーディング
ストレージエンジン 用途によりデータ格納エンジンを選択
JSONデータ型 JSONドキュメント用スキーマレスデータ型
パーティション 大量データを分割して格納
NoSQL処理 memcached, x protocol, その他
レプリケーション 参照処理の分散・バックアップ用途で利用
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 4
MySQL Partition Engine
基本機能レビューとMySQL8.0以降の注意点
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5
MySQL Partition Engineの基本検証
【環境】
Oracle Cloud MySQL Service
インスタンス: OC1M (1OCPU, MEM 15GB) - InnoDB Buffer Pool (11GB)
Cloud Trial: https://cloud.oracle.com/ja_JP/mysql
Sample Database (world): https://dev.mysql.com/doc/index-other.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6
[world]> explain SELECT `world`.`Continent` AS `CAT1`, `world`.`Region` AS `CAT2`, `world`.`Name` AS `CAT3`, SUM(`world`.`Population`) AS `SUM1`,
SUM(`world`.`LifeExpectancy`) AS `SUM2`, SUM(`world`.`GNP`) AS `SUM3`, SUM(`world`.`Capital`) AS `SUM4` FROM `world`.`Country` `world`
GROUP BY `world`.`Continent`, `world`.`Region`, `world`.`Name`¥G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: world
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 239
filtered: 100.00
Extra: Using temporary; Using filesort
1 row in set, 1 warning (0.00 sec)
[world]> show warnings¥G
*************************** 1. row ***************************
Level: Note
Code: 1003
Message: /* select#1 */ select `world`.`world`.`Continent` AS `CAT1`,`world`.`world`.`Region` AS `CAT2`,`world`.`world`.`Name` AS
`CAT3`,sum(`world`.`world`.`Population`) AS `SUM1`,sum(`world`.`world`.`LifeExpectancy`) AS `SUM2`,sum(`world`.`world`.`GNP`) AS
`SUM3`,sum(`world`.`world`.`Capital`) AS `SUM4` from `world`.`Country` `world` group by
`world`.`world`.`Continent`,`world`.`world`.`Region`,`world`.`world`.`Name`
1 row in set (0.00 sec)
Indexが使えない処理で検証を実行
(Default Sample Data)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 7
query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name`
db: world
full_scan: *
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 7.30 ms
max_latency: 7.30 ms
avg_latency: 7.30 ms
lock_latency: 227.00 us
rows_sent: 239
rows_sent_avg: 239
rows_examined: 717
rows_examined_avg: 717
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 1
tmp_disk_tables: 0
rows_sorted: 239
sort_merge_passes: 0
digest: efcfa3ca13fb4b885768af2dd7c1971e
first_seen: 2017-12-05 06:51:41
last_seen: 2017-12-05 06:51:41
データ数:239行
7.30ミリ秒
(Default:239行)
データ数:23,900,000行 (SIZE: 7GB)
query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name`
db: world
full_scan: *
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 47.30 s
max_latency: 47.30 s
avg_latency: 47.30 s
lock_latency: 192.00 us
rows_sent: 239
rows_sent_avg: 239
rows_examined: 23900000
rows_examined_avg: 23900000
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 1
tmp_disk_tables: 0
rows_sorted: 239
sort_merge_passes: 0
digest: 038c9177ef6ba734d671a1e219d92fbd
first_seen: 2017-12-12 05:10:02
last_seen: 2017-12-12 05:10:02
47.30秒
(データを100,000倍に)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 8
データが肥大化した場合
MySQLでの対応方法は?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 9
query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name`
db: world
full_scan:
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 567.18 ms
max_latency: 567.18 ms
avg_latency: 567.18 ms
lock_latency: 236.00 us
rows_sent: 3
rows_sent_avg: 3
rows_examined: 300006
rows_examined_avg: 300006
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 1
tmp_disk_tables: 0
rows_sorted: 3
sort_merge_passes: 0
digest: d06c55a3c07e4a196e5585de198e173d
first_seen: 2017-12-07 09:34:22
last_seen: 2017-12-07 09:34:22
567.18ミリ秒
Indexで1%程度のデータまでフィルターすると、
処理が高速化される為、1秒以下の処理に抑えられ
ている。必要に応じて、日付、製品カテゴリー、
地域等様々なデータにインデックス付けして高速化。
例) “code like ‘J%’ “で特定のコードにフィルター
INDEXを利用出来る処理に変更
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 10
パーティションの検討(参照:テーブル全体)
query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name`
db: world
full_scan: *
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 46.90 s
max_latency: 46.90 s
avg_latency: 46.90 s
lock_latency: 234.00 us
rows_sent: 239
rows_sent_avg: 239
rows_examined: 23900000
rows_examined_avg: 23900000
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 1
tmp_disk_tables: 0
rows_sorted: 239
sort_merge_passes: 0
digest: 7ad6bdd420bf52f1353af57082806771
first_seen: 2017-12-13 11:15:42
last_seen: 2017-12-13 11:15:42
46.90秒
mysql> show create table m57_Partition¥G
******************** 1. row ********************
<SNIP>
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LINEAR KEY (Continent)
PARTITIONS 7 */
[oracle@benchmark01-mysql-1 ~]$ ls
/u01/data/mysql/world/m57_Pa*
/u01/data/mysql/world/m57_Partition.frm
/u01/data/mysql/world/m57_Partition#P#p2.ibd
/u01/data/mysql/world/m57_Partition#P#p5.ibd
/u01/data/mysql/world/m57_Partition#P#p0.ibd
/u01/data/mysql/world/m57_Partition#P#p3.ibd
/u01/data/mysql/world/m57_Partition#P#p6.ibd
/u01/data/mysql/world/m57_Partition#P#p1.ibd
/u01/data/mysql/world/m57_Partition#P#p4.ibd
[oracle@benchmark01-mysql-1 ~]$
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11
mysql> explain select * from m57_Partition
where Region = 'Southern and Central Asia'¥G
*********************** 1. row ***********************
id: 1
select_type: SIMPLE
table: m57_Partition
partitions: p1
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1631508
filtered: 10.00
Extra: Using where
1.10 秒
query: SELECT COUNT ( * ) FROM `m57_Partition` WHERE `Region` = ?
db: world
full_scan: *
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 1.10 s
max_latency: 1.10 s
avg_latency: 1.10 s
lock_latency: 178.00 us
rows_sent: 1
rows_sent_avg: 1
rows_examined: 1399972
rows_examined_avg: 1399972
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 0
tmp_disk_tables: 0
rows_sorted: 0
sort_merge_passes: 0
digest: 64796ebd7962cf62aefa0cc38c7ae705
first_seen: 2017-12-12 14:01:46
last_seen: 2017-12-12 14:01:46
パーティションの検討(参照:特定パーティション)
PARTITION BY LIST COLUMNS(Region)
(
PARTITION p0 VALUES IN ('Caribbean'),
PARTITION p1 VALUES IN ('Southern and Central Asia'),
PARTITION p2 VALUES IN ('Central Africa'),
NOTE: この例では,PK及びINDEXをテーブルに対して作成していません。
PKを作成する場合は、パーティション対象列を含めてPKを作成して下さい。
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 12
mysql> show create table m57_Archive¥G
<SNIP>
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name`
db: world
full_scan: *
exec_count: 1
err_count: 0
warn_count: 0
total_latency: 48.69 s
max_latency: 48.69 s
avg_latency: 48.69 s
lock_latency: 203.00 us
rows_sent: 239
rows_sent_avg: 239
rows_examined: 23900000
rows_examined_avg: 23900000
rows_affected: 0
rows_affected_avg: 0
tmp_tables: 1
tmp_disk_tables: 0
rows_sorted: 239
sort_merge_passes: 0
digest: ede232d47ba72910b39d38c0f33483e8
first_seen: 2017-12-12 05:20:39
last_seen: 2017-12-12 05:20:39
48.69秒
Archiveストレージエンジンを検討(テーブル全体)
+--------------+----------------+---------+-----------+
| TABLE_SCHEMA | table_name | engine | ToTal(MB) |
+--------------+----------------+---------+-----------+
| world | m57_InnoDB | InnoDB | 6972 |
| world | m57_Archive | ARCHIVE | 65 |
+--------------+----------------+---------+-----------+
NOTE:
1) Archiveでもパーティションを利用可能です。 (※ MySQL8.0からはInnoDBのみ)
2) InnoDBの場合は、以下のように圧縮する事が可能。
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED
データは, Default 16Kから8Kに圧縮され、データサイズは約1/2程度になります。
InnoDB
23,900,000行
SIZE:7GB
Archive
23,900,000行
SIZE:65MB
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 13
MySQL8.0以降の留意事項
データサイズが大きく、インデックスの最適化が出来無い場合、
Partitionは選択肢の一つとして、便利な機能でしたが、
MySQL8.0からは、partitionストレージエンジンが無くなります。
代わりに、MySQL5.7からサポートされている、
InnoDB Native Partitionを利用頂く事になります。
Archiveストレージエンジン同様の圧縮をかけたい場合や
InnoDB Buffer Poolを最適に利用したい場合は、OSがサポート
すれば、Punch Holeが良い選択肢になるかと思います。
WL#6035: Add native partitioning support to InnoDB
https://dev.mysql.com/worklog/task/?id=6035
WL#8971: Deprecate and remove partitioning storage engine
https://dev.mysql.com/worklog/task/?id=8971
WL#7696: InnoDB: Transparent page compression
https://dev.mysql.com/worklog/task/?id=7696
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 8.0.1-dmr |
+-----------+
+--------------------+---------+----------+
| Name | Version | Status |
+--------------------+---------+----------+
| binlog | 1.0 | ACTIVE |
| CSV | 1.0 | ACTIVE |
| MEMORY | 1.0 | ACTIVE |
| InnoDB | 8.0 | ACTIVE |
| MyISAM | 1.0 | ACTIVE |
| MRG_MYISAM | 1.0 | ACTIVE |
| PERFORMANCE_SCHEMA | 0.1 | ACTIVE |
| ARCHIVE | 3.0 | ACTIVE |
| BLACKHOLE | 1.0 | ACTIVE |
| FEDERATED | 1.0 | DISABLED |
+--------------------+---------+----------+
MySQL Partition Engine

More Related Content

What's hot

今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
yoku0825
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
Noriyoshi Shinoda
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
yoku0825
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
yoku0825
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
 
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
Ivan Tu
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
yoku0825
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
yoku0825
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
yoku0825
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
yoku0825
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Features
Noriyoshi Shinoda
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
irix_jp
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
yoku0825
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
 

What's hot (20)

今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Features
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
 

Similar to MySQL Partition Engine

081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
Naoya Ito
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
Insight Technology, Inc.
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
Nissho Lab
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
Kohei KaiGai
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_Online
Kohei KaiGai
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
Insight Technology, Inc.
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
 
Aw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイントAw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイント
Taimei Omata
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
Satoshi Hirata
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
Shinya Sugiyama
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
Shinya Sugiyama
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
Dell TechCenter Japan
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
Noriyuki Yamaguchi
 
次世代シーケンス解析サーバーReseq解析マニュアル
次世代シーケンス解析サーバーReseq解析マニュアル次世代シーケンス解析サーバーReseq解析マニュアル
次世代シーケンス解析サーバーReseq解析マニュアル
Amelieff
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
Ryuji TAKEHARA
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Takeshi Kuramochi
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
 
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
Insight Technology, Inc.
 

Similar to MySQL Partition Engine (20)

081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_Online
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
 
Aw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイントAw svs trifortクラウド選びのポイント
Aw svs trifortクラウド選びのポイント
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
 
次世代シーケンス解析サーバーReseq解析マニュアル
次世代シーケンス解析サーバーReseq解析マニュアル次世代シーケンス解析サーバーReseq解析マニュアル
次世代シーケンス解析サーバーReseq解析マニュアル
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
[INSIGHT OUT 2011] B32 open hardwareの夜明け pci express 3・infiniband fdrの登場(yama...
 

More from Shinya Sugiyama

Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
Shinya Sugiyama
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
Shinya Sugiyama
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
Shinya Sugiyama
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
Shinya Sugiyama
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
Shinya Sugiyama
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
Shinya Sugiyama
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7
Shinya Sugiyama
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opc
Shinya Sugiyama
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
Shinya Sugiyama
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
Shinya Sugiyama
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
Shinya Sugiyama
 
MySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack NovaMySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack Nova
Shinya Sugiyama
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化)
Shinya Sugiyama
 

More from Shinya Sugiyama (14)

Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opc
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
MySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack NovaMySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack Nova
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化)
 

MySQL Partition Engine

  • 1. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Partition Engine 〜 中長期的なデータ蓄積とMySQL8.0以降の留意点〜 MySQL Global Business Unit Master Principal Sales Consultant/Shinya Sugiyama Updated: 2018/02/20
  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 2
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | CREATE VALUE FROM DATA データ蓄積用データベースとしてのMySQL データ蓄積 機能 概要 MySQL データベース MySQL Cluster データベース: 書き込み自動シャーディング ストレージエンジン 用途によりデータ格納エンジンを選択 JSONデータ型 JSONドキュメント用スキーマレスデータ型 パーティション 大量データを分割して格納 NoSQL処理 memcached, x protocol, その他 レプリケーション 参照処理の分散・バックアップ用途で利用
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 4 MySQL Partition Engine 基本機能レビューとMySQL8.0以降の注意点
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 MySQL Partition Engineの基本検証 【環境】 Oracle Cloud MySQL Service インスタンス: OC1M (1OCPU, MEM 15GB) - InnoDB Buffer Pool (11GB) Cloud Trial: https://cloud.oracle.com/ja_JP/mysql Sample Database (world): https://dev.mysql.com/doc/index-other.html
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 [world]> explain SELECT `world`.`Continent` AS `CAT1`, `world`.`Region` AS `CAT2`, `world`.`Name` AS `CAT3`, SUM(`world`.`Population`) AS `SUM1`, SUM(`world`.`LifeExpectancy`) AS `SUM2`, SUM(`world`.`GNP`) AS `SUM3`, SUM(`world`.`Capital`) AS `SUM4` FROM `world`.`Country` `world` GROUP BY `world`.`Continent`, `world`.`Region`, `world`.`Name`¥G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: world partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 239 filtered: 100.00 Extra: Using temporary; Using filesort 1 row in set, 1 warning (0.00 sec) [world]> show warnings¥G *************************** 1. row *************************** Level: Note Code: 1003 Message: /* select#1 */ select `world`.`world`.`Continent` AS `CAT1`,`world`.`world`.`Region` AS `CAT2`,`world`.`world`.`Name` AS `CAT3`,sum(`world`.`world`.`Population`) AS `SUM1`,sum(`world`.`world`.`LifeExpectancy`) AS `SUM2`,sum(`world`.`world`.`GNP`) AS `SUM3`,sum(`world`.`world`.`Capital`) AS `SUM4` from `world`.`Country` `world` group by `world`.`world`.`Continent`,`world`.`world`.`Region`,`world`.`world`.`Name` 1 row in set (0.00 sec) Indexが使えない処理で検証を実行 (Default Sample Data)
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 7 query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name` db: world full_scan: * exec_count: 1 err_count: 0 warn_count: 0 total_latency: 7.30 ms max_latency: 7.30 ms avg_latency: 7.30 ms lock_latency: 227.00 us rows_sent: 239 rows_sent_avg: 239 rows_examined: 717 rows_examined_avg: 717 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 1 tmp_disk_tables: 0 rows_sorted: 239 sort_merge_passes: 0 digest: efcfa3ca13fb4b885768af2dd7c1971e first_seen: 2017-12-05 06:51:41 last_seen: 2017-12-05 06:51:41 データ数:239行 7.30ミリ秒 (Default:239行) データ数:23,900,000行 (SIZE: 7GB) query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name` db: world full_scan: * exec_count: 1 err_count: 0 warn_count: 0 total_latency: 47.30 s max_latency: 47.30 s avg_latency: 47.30 s lock_latency: 192.00 us rows_sent: 239 rows_sent_avg: 239 rows_examined: 23900000 rows_examined_avg: 23900000 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 1 tmp_disk_tables: 0 rows_sorted: 239 sort_merge_passes: 0 digest: 038c9177ef6ba734d671a1e219d92fbd first_seen: 2017-12-12 05:10:02 last_seen: 2017-12-12 05:10:02 47.30秒 (データを100,000倍に)
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 8 データが肥大化した場合 MySQLでの対応方法は?
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 9 query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name` db: world full_scan: exec_count: 1 err_count: 0 warn_count: 0 total_latency: 567.18 ms max_latency: 567.18 ms avg_latency: 567.18 ms lock_latency: 236.00 us rows_sent: 3 rows_sent_avg: 3 rows_examined: 300006 rows_examined_avg: 300006 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 1 tmp_disk_tables: 0 rows_sorted: 3 sort_merge_passes: 0 digest: d06c55a3c07e4a196e5585de198e173d first_seen: 2017-12-07 09:34:22 last_seen: 2017-12-07 09:34:22 567.18ミリ秒 Indexで1%程度のデータまでフィルターすると、 処理が高速化される為、1秒以下の処理に抑えられ ている。必要に応じて、日付、製品カテゴリー、 地域等様々なデータにインデックス付けして高速化。 例) “code like ‘J%’ “で特定のコードにフィルター INDEXを利用出来る処理に変更
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 10 パーティションの検討(参照:テーブル全体) query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name` db: world full_scan: * exec_count: 1 err_count: 0 warn_count: 0 total_latency: 46.90 s max_latency: 46.90 s avg_latency: 46.90 s lock_latency: 234.00 us rows_sent: 239 rows_sent_avg: 239 rows_examined: 23900000 rows_examined_avg: 23900000 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 1 tmp_disk_tables: 0 rows_sorted: 239 sort_merge_passes: 0 digest: 7ad6bdd420bf52f1353af57082806771 first_seen: 2017-12-13 11:15:42 last_seen: 2017-12-13 11:15:42 46.90秒 mysql> show create table m57_Partition¥G ******************** 1. row ******************** <SNIP> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LINEAR KEY (Continent) PARTITIONS 7 */ [oracle@benchmark01-mysql-1 ~]$ ls /u01/data/mysql/world/m57_Pa* /u01/data/mysql/world/m57_Partition.frm /u01/data/mysql/world/m57_Partition#P#p2.ibd /u01/data/mysql/world/m57_Partition#P#p5.ibd /u01/data/mysql/world/m57_Partition#P#p0.ibd /u01/data/mysql/world/m57_Partition#P#p3.ibd /u01/data/mysql/world/m57_Partition#P#p6.ibd /u01/data/mysql/world/m57_Partition#P#p1.ibd /u01/data/mysql/world/m57_Partition#P#p4.ibd [oracle@benchmark01-mysql-1 ~]$
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11 mysql> explain select * from m57_Partition where Region = 'Southern and Central Asia'¥G *********************** 1. row *********************** id: 1 select_type: SIMPLE table: m57_Partition partitions: p1 type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 1631508 filtered: 10.00 Extra: Using where 1.10 秒 query: SELECT COUNT ( * ) FROM `m57_Partition` WHERE `Region` = ? db: world full_scan: * exec_count: 1 err_count: 0 warn_count: 0 total_latency: 1.10 s max_latency: 1.10 s avg_latency: 1.10 s lock_latency: 178.00 us rows_sent: 1 rows_sent_avg: 1 rows_examined: 1399972 rows_examined_avg: 1399972 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 0 tmp_disk_tables: 0 rows_sorted: 0 sort_merge_passes: 0 digest: 64796ebd7962cf62aefa0cc38c7ae705 first_seen: 2017-12-12 14:01:46 last_seen: 2017-12-12 14:01:46 パーティションの検討(参照:特定パーティション) PARTITION BY LIST COLUMNS(Region) ( PARTITION p0 VALUES IN ('Caribbean'), PARTITION p1 VALUES IN ('Southern and Central Asia'), PARTITION p2 VALUES IN ('Central Africa'), NOTE: この例では,PK及びINDEXをテーブルに対して作成していません。 PKを作成する場合は、パーティション対象列を含めてPKを作成して下さい。
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 12 mysql> show create table m57_Archive¥G <SNIP> ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 query: SELECT `world` . `Continent` A ... . `Region` , `world` . `Name` db: world full_scan: * exec_count: 1 err_count: 0 warn_count: 0 total_latency: 48.69 s max_latency: 48.69 s avg_latency: 48.69 s lock_latency: 203.00 us rows_sent: 239 rows_sent_avg: 239 rows_examined: 23900000 rows_examined_avg: 23900000 rows_affected: 0 rows_affected_avg: 0 tmp_tables: 1 tmp_disk_tables: 0 rows_sorted: 239 sort_merge_passes: 0 digest: ede232d47ba72910b39d38c0f33483e8 first_seen: 2017-12-12 05:20:39 last_seen: 2017-12-12 05:20:39 48.69秒 Archiveストレージエンジンを検討(テーブル全体) +--------------+----------------+---------+-----------+ | TABLE_SCHEMA | table_name | engine | ToTal(MB) | +--------------+----------------+---------+-----------+ | world | m57_InnoDB | InnoDB | 6972 | | world | m57_Archive | ARCHIVE | 65 | +--------------+----------------+---------+-----------+ NOTE: 1) Archiveでもパーティションを利用可能です。 (※ MySQL8.0からはInnoDBのみ) 2) InnoDBの場合は、以下のように圧縮する事が可能。 ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED データは, Default 16Kから8Kに圧縮され、データサイズは約1/2程度になります。 InnoDB 23,900,000行 SIZE:7GB Archive 23,900,000行 SIZE:65MB
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 13 MySQL8.0以降の留意事項 データサイズが大きく、インデックスの最適化が出来無い場合、 Partitionは選択肢の一つとして、便利な機能でしたが、 MySQL8.0からは、partitionストレージエンジンが無くなります。 代わりに、MySQL5.7からサポートされている、 InnoDB Native Partitionを利用頂く事になります。 Archiveストレージエンジン同様の圧縮をかけたい場合や InnoDB Buffer Poolを最適に利用したい場合は、OSがサポート すれば、Punch Holeが良い選択肢になるかと思います。 WL#6035: Add native partitioning support to InnoDB https://dev.mysql.com/worklog/task/?id=6035 WL#8971: Deprecate and remove partitioning storage engine https://dev.mysql.com/worklog/task/?id=8971 WL#7696: InnoDB: Transparent page compression https://dev.mysql.com/worklog/task/?id=7696 mysql> select @@version; +-----------+ | @@version | +-----------+ | 8.0.1-dmr | +-----------+ +--------------------+---------+----------+ | Name | Version | Status | +--------------------+---------+----------+ | binlog | 1.0 | ACTIVE | | CSV | 1.0 | ACTIVE | | MEMORY | 1.0 | ACTIVE | | InnoDB | 8.0 | ACTIVE | | MyISAM | 1.0 | ACTIVE | | MRG_MYISAM | 1.0 | ACTIVE | | PERFORMANCE_SCHEMA | 0.1 | ACTIVE | | ARCHIVE | 3.0 | ACTIVE | | BLACKHOLE | 1.0 | ACTIVE | | FEDERATED | 1.0 | DISABLED | +--------------------+---------+----------+