最近始めたあなたも
今日から語れるようになる
MySQLの
{最新情報と概要}入門
2016/04/09
日本MySQLユーザ会(MyNA)
坂井 恵 (@sakaik)
福岡データベース勉強会2016年春
本日のメニュー
• MySQL 5.7 最新情報
– ざっくりとわかるMySQL 5.7
– MySQLの情報源
– 日本MySQLユーザ会
• MySQL 5.7 に到る道
– バージョン番号
– 機能
– 開発主体
福岡に来る途中の伊丹空港で見か
けた飛行機。
MySQLを使う人なら、一度は乗っ
てみたい、イルカさん模様の
ATR42 です。
自己紹介
• @sakaik
• 千葉県から来ました
• 日本MySQLユーザ会(MyNA)副代表
• MySQLでごはん食べてません
• MySQLは趣味です
アウトプットとか
• MySQLマニュアルを読む Advent Calendar 2015
– http://qiita.com/advent-
calendar/2015/mysql_manual
アドベントカレンダー2015:私もひとつ
やらなきゃよかった。。。
もうやらない・・・
でもべんきょうには、なった。
「ひとりアドベントカレンダー」
一生に一度は、やってみても面白
いかも。一度でいいけど。
本題に入ります
MySQL 5.7 最新情報
MySQL 5.7 最新情報
• MySQL 5.7 が出ました!
• 2015/10 MySQL 5.7.9 にて GA
• 2016/04/07 現在、MySQL 5.7.11 が最
新
昨年10月
MySQL 5.7 の特徴
たくさん進化していますが、要するに・・・・
• 速くなった
• 安全になった
• いくつかの機能が増えた
• サブクエリとか
• 内部処理で一時テーブルを使っていた処理と
か
– UNION ALL, サブクエリ
• 同時実行(多コネクション)とか
• オプティマイザの改良
– http://nippondanji.blogspot.jp/2015/12/mysql-user-conference-tokyo-2015mysql-
57.html
MySQL 5.7:高速化
最近では、ココ、重要。
「ひとつのクエリの実行が早くなった
もの」と
「同時アクセスが多くなっても速く動
くもの」に分けて考えると、理解しや
すいかも。
主な新機能
• JSON対応(データ型/関数等)
• GIS機能の整理・拡充 (spatial型)
• レプリケーションの進化
– マルチソースレプリケーション
– パラレルレプリケーション
• 内部情報を見る仕組みの充実
– Performance_schema、sysスキーマ
• GENERATED COLUMN
正式リリースの直前にぶっ込んできた
もの。「今、絶対に入れる必要があ
る!!」という気迫の判断あってのこ
とだと思うので、今後、重要な位置を
占めていくかも。注目。
参考: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.
MySQL 5.7 の情報
• 150を超える新機能、改善等
– https://yakst.com/ja/posts/3037
• その他 講演発表資料、ブログなど
• 接続パスワードの有効期限
• SQLモードのデフォルト値の変更
MySQL 5.7:ハマりそうなところ
• DEFAULT_PASSWARD_LIFETIME = 360
↓
• 360日後に接続不可に!
接続パスワードの有効期限
MySQL 5.7.11 (2016.02 リリース)で
DEFAULT_PASSWARD_LIFETIME = 0 に!
Yoku0825さん++
https://yakst.com/ja/posts/3742
「新しいMySQLは、360日後に接続で
きなくなる時限爆弾があるよ」
と言っている人には、
「それ、MySQL 5.7.11 で ゼロに
なったよ」
と教えてあげよう。
接続パスワードの有効期限
• SQL_MODE: ONLY_FULL_GROUP_BY
がデフォルトでオンになった
↓
• 雑なクエリが書けなくなって歓迎!
(きっとどこかで悲鳴が)
SQLモードのデフォルト値
例:
×
SELECT f_id, name, count(*) FROM tbl1
GROUP BY f_id;
○
SELECT f_id, name, count(*) FROM tbl1
GROUP BY f_id, name;
SQL_MODE: ONLY_FULL_GROUP_BY
SQLモードのデフォルト値
その他MySQL5.7の情報は
自分が関心のある部分について、
自分で情報収集しよう
かなりたくさんの情報が、公開されていま
す。
MySQLの情報源
• MySQLマニュアル
• オラクル公式情報
• Twitter #mysql_jp
• イベント参加・開催・公開資料等
• ユーザ会メーリングリスト
ここまで
• MySQL 5.7 の最新情報とかのお話
ここからは
MySQL 5.7 に到る道
のお話をします。
最近始めたあなたも、これで、MySQLを昔
から知っていたような顔ができます
MySQLの開発主体
• 1995年 TcXが初バージョン公開
• 2000年 6月MySQL AB 設立
• 2005年 OracleがInnoBase Oy を買収
– 2006年 MySQL KK 設立
• 2008年 Sun Microsystems が MySQL社を買収
• 2010年 Oracle が Sun Microsystemsを買収
MySQL
InnoBase
Oracle
Sun
Microsystems
2005 2008 2010
× ×
×
参考: Oracleの「10の約束」
• MySQL 3.23 (2001)みんなが使い始めた
• MySQL 4.0 (2003)使いやすくなってきた
• MySQL 4.1 (2004)文字コードの扱い拡張(&混乱)
• MySQL 5.0 (2005)大きな進化
• MySQL 5.1 (2008)更に大きな進化
• MySQL 5.5 (2010)Oracle後初のメジャー
• MySQL 5.6 (2013)初の純Oracleバージョン
• MySQL 5.7 (2015)現在の最新バージョン
MySQLの主なバージョン
青字 MySQL AB 時代
黒字 Sun Microsystems 時代
赤字 Oracle 時代
その他、幻の MySQL 6.0, MySQL 5.4 も。
もうひとつのバージョン番号:マイルストン
• Milestone release と言う仕組みが導入さ
れました。
• おおむね、β相当だと思えば良いです。
• RC、GAのバージョンには、つかない。
• 例:MySQL 5.7.6-m16
– この次は 5.7.7-RC, 5.7.8-RC, 5.7.9(GA)
もうひとつのバージョン番号:マイルストン
5.7.6-m16
5.7.5-m15
5.7.4-m14
5.7.3-m13
5.7.2-m12
5.7.1-m11
5.7.0-m10
マイルストンリリース番号の実例
5.6.6-m9
5.6.5-m8
5.6.4-m7
5.6.3-m6
5.6.2-m5
5.6.1-m4
5.6.0-m3
5.5.3-m3
5.5.2
5.5.1
5.5.0-m2
5.4(開発終了) を
milestone 1 とした。
MySQLにほんごのれきし(1)
1997年
とみたまさひろ氏が日本語化パッチ作成
1998年
パッチが本家に採用される(3.21.30)
=UJIS, SJIS 対応。
2000年
実行時に文字セットを指定できるように
(configure時ではなく)(3.23.14)
MySQLにほんごのれきし(2)
2005年頃
MySQL 4.1.0。マルチバイト文字セットの扱
いを大幅変更
(Unicode 3.0対応 (3 byte UTF-8))
utf8
2007年頃
MySQL 5.5.3
(Unicode 5.0, 6.0 対応 (4 byte UTF-8))
utf8mb4
余談:4 byte UTF-8
日本MySQLユーザ会・略歴
• 1998年
国内メーリングリスト(ML)開始
• 2000年3月
日本MySQLユーザ会(MyNA)発足
現在に到る
日本MySQLユーザ会
http://mysql.gr.jp
メーリングリストが、活動の本体です。
イベントの案内などもあります。
流量少ないので安心して登録してください。
OSCとか、イベント一緒に参加しましょう。
今日のまとめ
MySQL 5.7 いいよ!
MySQL の歴史、色々あったけど結構いいよ!
MySQL ユーザ会のML、入るとなにかいいよ!

福岡DB勉強会2016春・MySQLの{最新情報と概要}入門

Editor's Notes

  • #15 mysqld --initialize
  • #24 Oy:フィンランド (osakeyhtio) AB: スウェーデン(aktie bolag) SAAB; Svenska Aeroplan AB
  • #27 5.4 や 6.0 の歴史も