>100 Views
November 19, 16
スライド概要
2016.11.19 に福岡県福岡市で開催された オープンソースカンファレンス(OSC)2016-Fukuoka での日本MySQLユーザ会発表枠の発表資料です。
初出URL:https://www.slideshare.net/sakaik/mysqlosc2016-75955731
2016/11/19 OSC2016-Fukuoka 日本MySQLユーザ会(MyNA) 坂井 恵 (@sakaik )
AGENDA
Who am I? • 坂井 恵 (さかい けい) @sakaik • 日本MySQLユーザ会(MyNA)副代表 • MySQLは趣味です • 千葉県から来ました
Who am I? 最近、査読でお手伝いさせていただいた本 実際の活用範囲は限定的かもしれない けれども、たぶんこの本は、 あなたのSQLの【幅】を広げてくれます -- sakaik, 2016
MySQL 5.7 登場 • 2015年10月 • MySQL 5.7.9 ~ • 2016年11月13日現在、MySQL 5.7.16 が最新 • 個人的印象では「MySQL史上 最大の進化」
5.7に到るまでの道のり 5.0 5.1 5.5 5.4 6.0 5.6 5.7
5.7に到るまでの道のり
詳解MySQL5.7の紹介
詳解MySQL5.7の紹介 • 奥野幹也氏 著 • 2016年8月 刊 • MySQL おさかな の本 NEW!! 5.7 の進化部分だけに絞った本 • 背景の説明もしっかりなので、 「MySQL Internals」な入門書としてもオススメ
MySQL 5.7 進化の内容 たくさんの進化ポイントがありますが、 要するに、、、、、 • より速く • より安全に • より便利に
MySQL 5.7 進化の内容 言い換えると、 • ①速くなった • ②安全になった。安定性が向上した • ③機能がいくつか(いくつも)増えた
MySQL5.7: ①速度の向上 • 同時実行性能 • 多CPU • 不要な内部処理の省略
MySQL5.7:②安定性の向上 • 主に、障害(突然の電源断)に関する耐久性 の向上 • セキュリティ(ユーザ管理等を含む)の仕組み の充実
MySQL5.7:③新機能 • JSON対応/ドキュメントストア – JSONデータ型、JSON関数 • GIS機能の整備 – GIS関数名の整理と拡充 • レプリケーションの進化 – マルチソースレプリケーション – マルチスレッドスレーブ • 生成カラム(GENERATED COLUMN) • 内部情報を見るしくみの充実 – PERFORMANCE_SCHEMA、sysスキーマ
MySQL5.7 新機能:
GENERATED COLUMN
日本語で「生成列」とも。
mysql> CREATE TABLE gentest (a int, b int, c int GENERATED ALWAYS AS (a+b));
mysql> INSERT INTO
gentest (a,b) values (3,5),(2,9);
mysql> SELECT * FROM gentest;
+------+------+------+
| a
| b
| c
|
+------+------+------+
|
3 |
5 |
8 |
|
2 |
9 |
11 |
+------+------+------+
mysql> CREATE TABLE gentest2 (a int, b int,
c int GENERATED ALWAYS AS ((a+b)*rand()));
ERROR 3102 (HY000): Expression of generated column 'c' contains a disallowed
function.
GENERATED COLUMN col_name data_type [GENERATED ALWAYS] AS (expression) [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment] [[NOT] NULL] [[PRIMARY] KEY] ※実は GENERATED ALWAYS 句は省略可能
GENERATED COLUMN col_name data_type [GENERATED ALWAYS] AS (expression) [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment] [[NOT] NULL] [[PRIMARY] KEY] mysql> CREATE TABLE gentest (a int, b int, c int GENERATED ALWAYS AS (a+b)); mysql> CREATE TABLE gentest (a int, b int,c int AS (a+b));
SQLモードのデフォルト値 • SQL_MODE: ONLY_FULL_GROUP_BY がデフォ ルトでオンになった ↓ • 雑なクエリが書けなくなって歓迎! (きっとどこかで悲鳴が)
SQL_MODE: ONLY_FULL_GROUP_BY こんなクエリを書いていませんか? 例: SELECT mycode, name, count(*) FROM tbl1 GROUP BY mycode;
SQL_MODE: ONLY_FULL_GROUP_BY 例: × SELECT mycode, name, count(*) FROM tbl1 GROUP BY mycode; ○ SELECT mycode, name, count(*) FROM tbl1 GROUP BY mycode, name;
SQL_MODE: ONLY_FULL_GROUP_BY これで「SQLを勉 強したい人」にも MySQLをお勧め できる!!
SQL_MODE: ONLY_FULL_GROUP_BY こんな方法もある: × SELECT mycode, name, count(*) FROM tbl1 GROUP BY mycode; △ SELECT mycode, ANY_VALUE(name), count(*) FROM tbl1 GROUP BY mycode;
SQLモードのデフォルト値(おさらい) MySQL 5.7 • SQL_MODE: ONLY_FULL_GROUP_BY がデフォルトでオンになった
MySQL5.7新機能: ドキュメントストア ものすごく大雑把に言うと ガンガン登録したり検索したりできる機能
MySQL5.7新機能: ドキュメントストア MySQL MySQL 関数』 MySQL MySQL MySQL MySQL ア』 5.7.7 RC 5.7.8 RC 『JSON型/JSON 5.7.9 GA!! 5.7.10 5.7.11 5.7.12 『ドキュメントスト 突如登場!
MySQL5.7新機能: ドキュメントストア MySQL 5.7 Reference manual
MySQL5.7新機能: ドキュメントストア • MySQL 5.7.12 ~ • JSON型/JSON関数のサポート • X Plugin: 33060ポート • MySQL Shell (mysqlsh) MySQL 5.7 Reference manual
MySQL5.7新機能: ドキュメントストア mysqlshで、python や JavaScript でコマンド ライン操作が可能 NoSQL的な。
情報スキーマ系 INFORMATION_SCHEMA PERFORMANCE_SCHEMA Sysスキーマ
(再掲)詳解MySQL5.7の紹介 • 奥野幹也氏 著 • 2016年8月 刊 • MySQL おさかな の本 NEW!! 5.7 の進化部分だけに絞った本 • 背景の説明もしっかりなので、「MySQL Internals」な入門書としてもオススメ
あたらしくなった MySQL 5.7 ぜひお試しください
One more thing…
MySQL 8.0.0 登場 (2016/09/12)
MySQL 8.0.0 主なトピック 2016年9月12日登場! • データディクショナリがInnoDBに • デフォルトのキャラセットがutf8系に? • CTE(共通表式)(予定) • ロール http://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
5.7に到るまでの道のり(再掲) 5.0 5.1 8.0 5.5 5.4 6.0 5.6 5.7
ご静聴ありがとうございました