782 Views
June 26, 21
スライド概要
2021/06/26 に開催された オープンソースカンファレンス北海道2021(OSC2021 Online Hokkaido) での、MySQLユーザ会(MyNA)発表枠『しばらくMySQLから離れていた人が最近のMySQL情報に触れて分かった気分になるための45分』の、発表資料です。
初出URL:https://www.slideshare.net/sakaik/mysql45osc2021hokkaido
オープンソースカンファレンス2021 北海道(Online) しばらくMySQLから 離れていた人が最近の MySQL情報に触れて 分かった気分になるた めの45分 2021/06/26 日本MySQLユーザ会(MyNA) 坂井 恵(@sakaik)
OSC北海道 現地に行くことは今年も叶わず 今年も「気分だけ」北海道 地域名を冠したイベントに参加すると きは、少しでもその地域に思いを巡ら せてみると、楽しさが倍増します!
今日は • ハッシュタグ • OS2021北海道: • #osc21do 日本のMySQL情報:#mysql_jp • このあと15:00から: 『MySQL開発最新動向』 Oracle Corporation (MySQL Community Team) 生駒眞知子(IKOMA,Machiko) • MySQLのクラウドサービスを含めた、MySQLの最新情報を訊ける(はず)
私は • 坂井 恵 (SAKAI, Kei) • @sakaik • 日本MySQLユーザ会(MyNA)副代表
しばらくMySQLから 離れていた人が最近の MySQL情報に触れて 分かった気分になるた めの45分 全体として ふんわりとしたお話をします。 気楽に楽しんで聞いてください。
MySQLのバージョン 3.21/3.22/3.23 4.0 2003年~ 4.1 2004年~ 5.0 2005年~ 5.1 2008年~ 1900年代 5.5 5.6 5.7 8.0 2010年~ 2013年~ 2015年~ 2018年~ あなたの記憶にあるMySQLは、どれですか?
MySQLの開発者 1900年代 MySQL AB 2005年 Oracle社が Innobase Oy を買収 2008年 Sun Microsystems社が MySQL ABを買収 2010年 Oracle社が Sun社を買収 現在、Oracle社がMySQLの開発を行っている
ライセンス 昔から変更なし オープンソースライセンス(GPL) と 商用ライセンス から選択可能
現在の最新バージョン MySQL 8.0.x ・なぜ 5.7の次がこの番号? ・リリースの特徴は?
ストレージエンジン • 昔: MyISAMとInnoDB • 今: つべこべ言わず InnoDB 使っておけ! (もちろんMyISAMも、あります)
MySQL 8.0 までの間にできたもの • • • • • • • • • • • • • • • • トランザクション対応(3.23) サブクエリ(4.1) ストアドプロシージャ(5.0) VIEW(5.0) TRIGGER(5.0) パーティショニング(5.1) 行ベースレプリケーション(5.1) INFORMATION_SCHEMA (5.1) PERFORMANCE_SCHEMA(5.5) sysスキーマ(5.7) 生成列(5.7) 準同期レプリケーション(5.5) GTID (5.6) JSON対応(5.7) 地理座標系データ(8.0) CTE/Window関数(8.0) (抄)
MySQL 8.0までの間にできたもの (その他) • mysqlsh • unicode対応(3byte utfは4.1~。5.5で4byte utf8対応) • MySQL Workbench
MySQLのunicode対応 • MySQL 4.1: UTF-8対応: 3 bytes UTF-8 • MySQL内部名 utf8、utf8mb3 • MySQL 5.7 : 4 bytes UTF-8 対応 • MySQL内部名 utf8mb4 → 現在は、"utf8" と指定すると"utf8mb3" と同義だが、今後のリリースで "utf8" という名前の指すものが "utf8mb4" へと変わる流れなので注意 →今から触るなら、とりあえず "utf8mb4" を指定しておけ ばOK (8.0からはデフォルト)
セキュリティへの意識 • 昔「置いてすぐに使えるデータベース」 • 今「安心して安全に使えるデータベース」 • パスワード(今はランダム→初回に自分で変え る:インストール方法に依る) • testデータベースの廃止
速度向上 • 単体SQLの速度向上(オプティマイザ/内部の 一時テーブルの使い方etc • 同時多アクセスの速度向上 (私は...細かいことは語らず、普通に使って速くなって るならそれでいいじゃない派)
標準SQLへの歩み寄り • GROUP BY • ONLY_FULL_GROUP_BY SQLモード(5.7~) • "0000-00-00" 日付の無効化 (オプションで従来どおりに使用することも 可能)
SQLの充実 • CTE(Common Table Expressions) • Window関数
データ型の充実 • JSON型 • 測地系を考慮した Spatial型(GIS) • 座標型自体はMySQL4.1からあるが、測地系に対応していると ころがミソ
GIS機能 • 測地系(JGD2011とか WGS84とか)を考慮した座標情報 を扱える • PostgreSQL + PostGIS でやっていたことを、MySQL でもできるようになってきている!
情報取得方法の充実 • INFORMATION_SCHEMA • PERFORMANCE_SCHEMA • sysスキーマ
現在サポートされているMySQL • MySQL 5.6 は EoL です!!!(2021年2月) (End of Life = 新しいバージョンは出ません) • MySQL 5.7 (EoL: 2023年10月) • MySQL 8.0 を使いましょう
MySQLドキュメント • 8.0日本語ドキュメント提供開始! ここから Japanese を 選べば オーケー
MySQL 8.0 • マイナーvupなのに変更が多いのは若干不安 • 逆に言えば続々進化継続中 ...とも言える... • リリースノートを見よう!見て判断しよう!
MySQL のバージョン毎の変 化を知る • mysql params • https://mysql-params.tmtms.net/mysqld/ • とみたまさひろ氏作成
まとめ • MySQL 8.0を使え • 特に強い拘りがなければ InnoDBを使え(default) • 文字コードは強い拘りがないなら utf8mb4 • mysqlshも注目 • 個人的には 地理情報(GIS/spatial)データを扱う機能 推し!