View
127
Download
1
Category
Preview:
Citation preview
2016/10/01OSC2016-Nagaoka
日本MySQLユーザ会(MyNA)坂井 恵 (@sakaik )
こっちです
baserCMSとは
• PHPで書かれた国産CMS
• 「コーポレートサイトにちょうどいい」
• データベースとしてMySQLを使用可能(PostgreSQLも選択可)
本当に、こっちです
AGENDA
Who am I?
• 坂井 恵 (さかい けい)
@sakaik
• 日本MySQLユーザ会(MyNA)副代表
• MySQLは趣味です
• 千葉県から来ました
Who am I?
最近、査読でお手伝いさせていただいた本
実際の活用範囲は限定的かもしれない
けれども、たぶんこの本は、
あなたのSQLの【幅】を広げてくれます
-- sakaik, 2016
MySQL 5.7 登場
• 2015年10月
• MySQL 5.7.9 ~
• 2016年9月30日現在、MySQL 5.7.15 が最新
• 個人的印象では「MySQL史上最大の進化」
5.7に到るまでの道のり
5.7
5.65.1
5.0
6.0
5.55.4
5.7に到るまでの道のり
詳解MySQL5.7の紹介
詳解MySQL5.7の紹介
• 奥野幹也氏著
• 2016年8月刊
• MySQL 5.7の進化部分だけに絞った本
• 背景の説明もしっかりなので、「MySQL Internals」な入門書としてもオススメ
NEW!!
おさかなの本
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_MODE: ONLY_FULL_GROUP_BY がデフォルトでオンになった
↓
• 雑なクエリが書けなくなって歓迎!
(きっとどこかで悲鳴が)
SQLモードのデフォルト値
例:
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_MODE: ONLY_FULL_GROUP_BY
これで「SQLを勉
強したい人」にもMySQLをお勧めできる!!
MySQL 5.7
• SQL_MODE: ONLY_FULL_GROUP_BYがデフォルトでオンになった
SQLモードのデフォルト値(おさらい)
MySQL5.7新機能:
ドキュメントストア
ものすごく大雑把に言うと
ガンガン登録したり検索したりできる機能
MySQL5.7新機能:
ドキュメントストア
MySQL 5.7.7 RC
MySQL 5.7.8 RC 『JSON型/JSON関数』
MySQL 5.7.9 GA!!
MySQL 5.7.10
MySQL 5.7.11
MySQL 5.7.12 『ドキュメントストア』 突如登場!
MySQL5.7新機能:
ドキュメントストア
MySQL 5.7 Reference manual
MySQL5.7新機能:
ドキュメントストア
MySQL 5.7 Reference manual
• MySQL 5.7.12 ~
• JSON型/JSON関数のサポート
• X Plugin: 33060ポート
• MySQL Shell (mysqlsh)
mysqlshで、python や JavaScript でコマンド
ライン操作が可能
NoSQL的な。
MySQL5.7新機能:
ドキュメントストア
情報スキーマ系
INFORMATION_SCHEMA
PERFORMANCE_SCHEMA
Sysスキーマ
(再掲)詳解MySQL5.7の紹介
• 奥野幹也氏著
• 2016年8月刊
• MySQL 5.7の進化部分だけに絞った本
• 背景の説明もしっかりなので、「MySQL Internals」な入門書としてもオススメ
NEW!!
おさかなの本
あたらしくなった
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
ご静聴ありがとうございました
Recommended