41
最最最最最最最最最 最最最最最最最最最最最最 MySQL 最 {最最最最最最最}最最 2016/02/27 最最 MySQL 最最最最 (MyNA) 最最 (@sakaik) 第 13 第 第第第第 DB 第第第 in 第第

最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

  • Upload
    sakaik

  • View
    985

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

最近始めたあなたも今日から語れるようになる

MySQL の{概要と最新情報}入門

2016/02/27日本 MySQL ユーザ会 (MyNA)

坂井 恵 (@sakaik)

第 13 回 中国地方 DB 勉強会 in 山口

Page 2: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

免責事項

いろいろ関係ありません。

Page 3: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

本日のメニュー

• MySQL 5.7 最新情報–ざっくりとわかる MySQL 5.7–MySQL の情報源–日本 MySQL ユーザ会

• MySQL 5.7 に到る道–バージョン番号–機能–開発主体

Page 4: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

自己紹介

• @sakaik• 千葉県から来ました

そーだいさんが、「東京から」って紹介するから、ちがいますちが

います、千葉です、と。

Page 5: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• 東京ディズニーランド!

• 旧・新東京国際空港!

• 東京ドイツ村

• 東京モーターショー

千葉県と言えば・・・・

そーだいさんが、「東京から」って言うから、ちがいますちがいます、千葉です、と強調しておかないとと思い、千葉を

代表するものを紹介!

Page 6: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

自己紹介

• @sakaik• 千葉県から来ました

• MySQL でごはん食べてません• MySQL は趣味です

Page 7: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

自己紹介

• @sakaik• 千葉県から来ました

• MySQL でごはん食べてません• MySQL は趣味です

• アドベントカレンダー

Page 8: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• MySQL マニュアルを読む Advent Calendar 2015– http://qiita.com/advent-calendar/2015/

mysql_manual

アドベントカレンダー 2015 :私もひとつ

やらなきゃよかった。。。もうやらない・・・でもべんきょうには、なった。

一生に一度は、やってみると、面白いとは思います・・・

Page 9: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

山口に着いてから、下を向いて歩きました。

SL は分かるけど、水馬 ( あめんぼう ) は何故?

Page 10: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

アウトプットとか

Page 11: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

セルコ「プログラマのための SQL 」

4版

「英訳したい ( 正確性の高まった ) 日本版」と日記で紹介していたら、英語の第五版が出てしまいました ( 笑 ) 。誤り部分が修正されたかは確認していませんが、全体の構成がスッキリと洗練されています。

Page 12: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

本題に入ります

MySQL 5.7 最新情報

Page 13: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL 5.7 最新情報

• MySQL 5.7 が出ました!

• 2015/10 MySQL 5.7.10 にて GA

• 2016/02 現在、 MySQL 5.7.11 が最新

Page 14: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL 5.7 の特徴

要するに・・・・

• 速くなった

• 安全になった

• いくつかの機能が増えた

Page 15: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• サブクエリとか

• 内部処理で一時テーブルを使っていた処理とか– UNION ALL, サブクエリ

• 同時実行(多コネクション)とか

• オプティマイザの改良– http://nippondanji.blogspot.jp/2015/12/mysql-user-conference-tokyo-2015mysql-57.html

MySQL 5.7 :高速化

Page 16: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

主な新機能• JSON 対応(データ型/関数等)

• GIS 機能の整理・拡充 (spatial 型 )

• レプリケーションの進化– マルチソースレプリケーション– パラレルレプリケーション

• 内部情報を見る仕組みの充実– Performance_schema 、 sys スキーマ

• GENERATED COLUMN

バラバラの名前が付けられていた関数が ST_* 関数群に整理されたり。「これから本気でやるぞ」感があら

われています

Page 17: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

参考: 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.

random とか出来るかな?と、イタズラ心で試してみましたが、さすが

にダメでした ( 笑 )

Page 18: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL 5.7 の情報

• 150 を超える新機能、改善等– https://yakst.com/ja/posts/3037

• その他 講演発表資料、ブログなど

Page 19: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• 接続パスワードの有効期限• SQL モードのデフォルト値の変更

MySQL 5.7 :ハマりそうなところ

Page 20: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• DEFAULT_PASSWARD_LIFETIME = 360      ↓

• 360 日後に接続不可に!

接続パスワードの有効期限

MySQL 5.7.11 ( 2016.02 リリース)で

DEFAULT_PASSWARD_LIFETIME = 0 に!

Yoku0825 さん ++https://yakst.com/ja/posts/3742

~MySQL 5.7.10

Page 21: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

「新しい MySQL は、 360 日後に接続できなくなる時限爆弾があるよ」    と言っている人には、

「それ、 MySQL 5.7.11 で ゼロになったよ」    と教えてあげよう。

接続パスワードの有効期限

・いったん 5.7.10 等をインストールしたものを、アップグレードしても、パラメタは変わらないのでちゅうい・ MySQL派生の他社サーバ類では、これを引きずっているものがあるのでちゅうい

Page 22: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• SQL_MODE: ONLY_FULL_GROUP_BY がデフォルトでオンになった

         ↓

• 雑なクエリが書けなくなって歓迎!     (きっとどこかで悲鳴が)

SQL モードのデフォルト値

Page 23: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

例:×SELECT f_id, name, count(*) FROM tbl1GROUP BY f_id;

○SELECT f_id, name, count(*) FROM tbl1GROUP BY f_id, name;

SQL_MODE: ONLY_FULL_GROUP_BY

Page 24: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

その他MySQL5.7 の情報は

自分が関心のある部分について、自分で情報収集しよう

Page 25: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL の情報源

• MySQL マニュアル• オラクル公式情報• Twitter #mysql_jp• イベント参加・開催・公開資料等• ユーザ会メーリングリスト

Page 26: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

ここまで

• MySQL 5.7 の最新情報とかのお話

Page 27: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

ここからは

MySQL 5.7 に到る道

のお話をします。

最近始めたあなたも、これで、 MySQL を昔から知っていたような顔ができます

Page 28: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL の開発主体• 1995年 TcX が初バージョン公開

• 2000年 6月MySQL AB 設立

• 2005年 Oracle が InnoBase Oy を買収

– 2006年 MySQL KK 設立

• 2008年 Sun Microsystems が MySQL社を買収

• 2010年 Oracle が Sun Microsystems を買収

Page 29: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL

InnoBase

Oracle

Sun Microsystems

2005 2008 2010

× ×

×

Page 30: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

参考: Oracle の「 10 の約束」

もう 5年以上経ったけれども、素晴らしい開発を続けてくれています

Page 31: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

• 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 も。

Page 32: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

もうひとつのバージョン番号:マイルストン

• Milestone release と言う仕組みが導入されました。

• おおむね、 β相当だと思えば良いです。• RC 、 GA のバージョンには、つかない。

• 例: MySQL 5.7.6-m16–この次は 5.7.7-RC, 5.7.8-RC, 5.7.9(GA)

Page 33: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

もうひとつのバージョン番号:マイルストン

5.7.6-m165.7.5-m155.7.4-m145.7.3-m135.7.2-m125.7.1-m115.7.0-m10

マイルストンリリース番号の実例

5.6.6-m95.6.5-m85.6.4-m75.6.3-m65.6.2-m55.6.1-m45.6.0-m3

5.5.3-m35.5.25.5.15.5.0-m2

5.4( 開発終了 ) を milestone 1 とした。

Page 34: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

MySQL にほんごのれきし (1)1997年 とみたまさひろ氏が日本語化パッチ作成1998年 パッチが本家に採用される (3.21.30) =UJIS, SJIS 対応。2000年 実行時に文字セットを指定できるように    (configure 時ではなく) (3.23.14)

Page 35: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

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

Page 36: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

余談: 4 byte UTF-8

Page 37: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

日本 MySQL ユーザ会・略歴

• 1998年   国内メーリングリスト (ML) 開始

• 2000年 3月   日本 MySQL ユーザ会 (MyNA) 発足

現在に到る

Page 38: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
Page 39: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

日本 MySQL ユーザ会

http://mysql.gr.jp

メーリングリストが、活動の本体です。イベントの案内などもあります。

流量少ないので安心して登録してください。

OSCとか、イベント一緒に参加しましょう。

!?

Page 40: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

今日のまとめ

MySQL 5.7 いいよ!

MySQL の歴史、色々あったけど結構いいよ!

MySQL ユーザ会のML、入るといいよ!

Page 41: 最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@

※未承諾広告※

4月 9 日 (土 )   (2016年 )

 福岡で、 MySQL + PostgreSQL を中心とした データベースの勉強会やります。

新山口から博多まで、電車で 40 分弱なので、ご興味のある方はぜひお越しください!