109 Views
February 27, 16
スライド概要
2016/02/27に新山口で開催された 第13回 中国地方DB勉強会 in 山口での、MySQLの最新情報+基礎知識のお話の資料(一部手を加えています)。
初出URL:https://www.slideshare.net/sakaik/mysql-59117416
第13回 中国地方DB勉強会 in 山口 最近始めたあなたも 今日から語れるようになる MySQLの {概要と最新情報}入門 2016/02/27 日本MySQLユーザ会(MyNA) 坂井 恵 (@sakaik)
免責事項 いろいろ関係ありません。
本日のメニュー • MySQL 5.7 最新情報 – ざっくりとわかるMySQL 5.7 – MySQLの情報源 – 日本MySQLユーザ会 • MySQL 5.7 に到る道 – バージョン番号 – 機能 – 開発主体
自己紹介 • @sakaik • 千葉県から来ました そーだいさんが、「東京から」っ て紹介するから、ちがいますちが います、千葉です、と。
千葉県と言えば・・・・ • 東京ディズニーランド! • 旧・新東京国際空港! • 東京ドイツ村 • 東京モーターショー そーだいさんが、「東京から」っ て言うから、ちがいますちがいま す、千葉です、と強調しておかな いとと思い、千葉を代表するもの を紹介!
自己紹介 • @sakaik • 千葉県から来ました • MySQLでごはん食べてません • MySQLは趣味です
自己紹介 • @sakaik • 千葉県から来ました • MySQLでごはん食べてません • MySQLは趣味です • アドベントカレンダー
アドベントカレンダー2015:私もひとつ • MySQLマニュアルを読む Advent Calendar 2015 – http://qiita.com/adventcalendar/2015/mysql_manual やらなきゃよかった。。。 もうやらない・・・ 一生に一度は、やってみると、面白いとは思います・・・ でもべんきょうには、なった。
山口に着いてから、 下を向いて歩きました。 SLは分かるけど、 水馬(あめんぼう)は何故?
アウトプットとか
セルコ「プログラマのためのSQL」 4版 「英訳したい(正確性の高まった)日本版」と日記で紹介していたら、英語の第五版が出 てしまいました(笑)。誤り部分が修正されたかは確認していませんが、全体の構成が スッキリと洗練されています。
本題に入ります MySQL 5.7 最新情報
MySQL 5.7 最新情報 • MySQL 5.7 が出ました! • 2015/10 MySQL 5.7.10 にて GA • 2016/02 現在、MySQL 5.7.11 が最新
MySQL 5.7 の特徴 要するに・・・・ • 速くなった • 安全になった • いくつかの機能が増えた
MySQL 5.7:高速化 • サブクエリとか • 内部処理で一時テーブルを使っていた処理と か – UNION ALL, サブクエリ • 同時実行(多コネクション)とか • オプティマイザの改良 – http://nippondanji.blogspot.jp/2015/12/mysql-user-conference-tokyo-2015mysql57.html
主な新機能 • JSON対応(データ型/関数等) • GIS機能の整理・拡充 (spatial型) • レプリケーションの進化 – マルチソースレプリケーション – パラレルレプリケーション • 内部情報を見る仕組みの充実 バラバラの名前が付けられていた関 数が ST_* 関数群に整理されたり。 「これから本気でやるぞ」感があら われています – 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 |
+------+------+------+
randomとか出来るかな?と、イタ
ズラ心で試してみましたが、さすが
にダメでした(笑)
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 • その他 講演発表資料、ブログなど
MySQL 5.7:ハマりそうなところ • 接続パスワードの有効期限 • SQLモードのデフォルト値の変更
接続パスワードの有効期限 ~MySQL 5.7.10 • 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 で ゼロに なったよ」 と教えてあげよう。 ・いったん 5.7.10等をインストールしたものを、アップグレードしても、パラメタは変わらない のでちゅうい ・MySQL派生の他社サーバ類では、これを引きずっているものがあるのでちゅうい
SQLモードのデフォルト値 • SQL_MODE: ONLY_FULL_GROUP_BY がデフォルトでオンになった ↓ • 雑なクエリが書けなくなって歓迎! (きっとどこかで悲鳴が)
SQL_MODE: ONLY_FULL_GROUP_BY 例: × SELECT f_id, name, count(*) FROM tbl1 GROUP BY f_id; ○ SELECT f_id, name, count(*) FROM tbl1 GROUP BY f_id, name;
その他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 × Sun Microsystems × Oracle 2005 2008 2010
参考: Oracleの「10の約束」 もう5年以上経ったけれども、素晴ら しい開発を続けてくれています
MySQLの主なバージョン • • • • • • • • MySQL MySQL MySQL MySQL MySQL MySQL MySQL MySQL 3.23 4.0 4.1 5.0 5.1 5.5 5.6 5.7 (2001)みんなが使い始めた (2003)使いやすくなってきた (2004)文字コードの扱い拡張(&混乱) (2005)大きな進化 (2008)更に大きな進化 (2010)Oracle後初のメジャー (2013)初の純Oracleバージョン (2015)現在の最新バージョン 青字 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、入るといいよ!
※未承諾広告※ 4月9日(土) (2016年) 福岡で、MySQL + PostgreSQL を中心 とした データベースの勉強会やります。 新山口から博多まで、電車で40分弱なので、 ご興味のある方はぜひお越しください!