今日はなにの日。

気になったこと勉強になったことのメモ。

MySQL

今日は、MySQL 8.0.32で追加された「explain_format」を触ってみたの日。

目次 目次 とある日 アップデート内容 explain_format見比べ TRADITIONAL JSON TREE ANALYZE DEFAULT エラー おまけ 〆 とある日 MySQL 8.0.32が1/17にGAされました。 リリースノートを見てて、気になった「explain_format」について調べてた記録です。 MySQ…

今日は、2022年で知ったMySQLの7つのことについての日。

初めに この記事はMySQL Advent Calendar 2022の19日目の記事です。 本記事では、今年一年を通してMySQLに触れててへぇーってなった7つのことについてまとめてます。 目次 初めに 目次 2022年で知ったMySQLの7つのこと 特定のデータベースにあるテーブル一覧…

今日は、MySQLのST_Transformにまつわる用語を理解してみたの日。

目次 目次 はじめに 今回調べていくのは MySQLのST_Transform関数 理解する用語 測地系 日本測地系と世界測地系 地理座標系 JGD2000/2011(測地成果) 平面直角座標系 SRID WGS84 SRID:4269 NAD83 TOWGS84 改めて理解 〆 参考記事 はじめに このエントリは、RD…

今日は、Performance InsightsでAurora for MySQLを調査するための記録の日。

目次 目次 とある日 Performance Insightsとは 基本情報 分析の見方 各分析内容 分析流れ スレッドの状態 creating sort index sending data 〆 参考情報 とある日 Performance InsightsでAurora for MySQLを調査するのにあったって、調べた内容を記録したも…

今日は、MySQLにEvent Scheduler なるものがあるらしいので使ってみたの日。

目次 目次 とある日 EVENTとは 使ってみる event_scheduler 設定確認 Event設定 動作確認 後始末 〆 参考記事 とある日 実践ハイパフォーマンスMySQL 第3版読んでてEvent Schedulerなるものがあるらしいので試してみた。 EVENTとは MySQL イベントは、スケジ…

今日は、ソースコードドキュメント見ながらMySQLのソースコードを読んでみたの日。

目次 目次 とある日 はじめに 調べてみた 検証環境作る 該当ソースコードを見る ソースコードドキュメントでも見てみる make_join_query_block() master_query_expression() is_outer_reference() 色々と試してみる パターン1 結果 パターン2 結果 パターン3…

今日は、MySQL 8.0.31がリリースされたので触ってみたの日。

目次 目次 とある日 アップデート内容 引用符なしの識別子として「full」が非推奨 SQL 標準 INTERSECTおよび EXCEPTテーブル演算子のサポート 概要 INTERSECT EXCEPT 優先度 ALLとDISTINCT 〆 参考記事 とある日 2022 年 10 月 11 日にMySQL 8.0.31がリリー…

今日は、MySQL Shell にある「アップグレード チェッカー」とやらを試してみるの日。

目次 目次 とある日 アップグレードチェッカユーティリティとは 検証環境 MySQL Shellインストール アップグレードチェッカユーティリティを実行する MySQL 8.0での考慮事項 mysql スキーマ内で競合する名前を持つユーザー テーブル 古いスタイルのデータ型 …

今日は、Docker Composeを使ってMySQL8.0のレプリケーションを構成してみるの日。

目次 目次 とある日 レプリケーションとは メリット やってみる 環境 環境準備 バイナリロギングを有効にする 一意なserver_id を構成する ソースサーバ レプリカサーバ レプリケーション用ユーザーを作成する ソースサーバロックする レプリカを構成する レ…

今日は、MySQL 8.0.30で追加されたGIPKを使ってみたの日。

目次 目次 とある日 Generated Invisible Primary Keys (GIPKs) GIPKってなに? 要点 使ってみる GIPK設定有効化 PKのないテーブル作成 INFORMATION_SCHEMA.COLUMNSで確認してみる どんなメリットがあるのか 気になった事やってみる この列消せるの? カラム…

今日は、MySQLでは列の順序は重要ではなさそうの日。

目次 目次 とある日 検証 大きなテーブルを作成する 非常に幅の広いテーブルを作成する さまざまな列へのアクセス まとめ 〆 とある日 PostgreSQLの列の順序は重要です-CYBERTECという記事を見ました。 MySQLだとどうなるのか気になったので試してみた記事で…

今日は、MySQL 8.0 にて JOIN_FIXED_ORDERを使って JOIN する順番を指定してチューニング検証してみたの日。

目次 目次 とある日 前提 JOIN_FIXED_ORDERってなに? STRAIGHT_JOINとの違い やってみる テーブル作成 概要 テーブル構成 使ったSQL 初期状態 JOIN_FIXED_ORDER指定してみる 試行錯誤 テーブル行数多い順 テーブル行数少ない順 おまけ まとめ 〆 参考記事 …

今日は、気になってのでMySQLのメタデータロック(MDL)を調べてみたの日。

目次 目次 とある日 メタデータロック(MDL)とは? メタデータとは 普通のロックとの違い メタデータロックしてみる トランザクション開始 metadata_locksテーブル確認 別トランザクションからDDL実行 lock_wait_timeout修正 再度別トランザクションからDDL実…

今日は、MySQL InnoDB Cluster の座学メモの日。

目次 目次 とある日 MySQL InnoDB Cluster とは? 関連用語まとめ MySQL Shell AdminAPI MySQL Group Replication MySQL Router bootstrapping create MySQL Router users MySQL Clone 〆 参考記事 とある日 KubernetesのMySQLオペレーターは、Kubernetesク…

今日は、Percona XtraBackupのMySQLバージョン違いの挙動が気になったの日。

目次 目次 とある日 検証 概要 結論 XtraBackup 8.0.28-20 XtraBackup 8.0.27-20 xtrabackup version 8.0.28-20 インストール手順 MySQL 8.0.29 MySQL 8.0.28 MySQL 8.0.27 xtrabackup version 8.0.27-19 インストール手順 MySQL 8.0.29 MySQL 8.0.28 MySQL …

今日は、俺的MySQLチートシートの日。

目次 目次 とある日 インストール編 インストール バージョン指定インストール リリースシリーズ指定インストール 運用編 showコマンド プラグイン確認 データベース一覧 テーブル一覧 テーブルスキーマ確認 権限確認 プロセス確認 ユーザ 作成 ユーザ一覧確…

今日は、MySQL 8.0.29で一部制限が解放されたALGORITHM=INSTANTの日。

目次 目次 とある日 ALGORITHM=INSTANTとは? 8.0.29の変更について DROP COLUMNALにもALGORITHM=INSTANTが追加 ALGORITHM=INSTANTの制限が一部解禁 検証 DROP COLUMNALにもALGORITHM=INSTANTが追加 8.0.28 8.0.29 ALGORITHM=INSTANTの制限が一部解禁 8.0.28…

今日は、MySQLでオブジェクト名にハイフンはエラーになるの日。

目次 目次 とある日 スキーマオブジェクト名の注意点 スキーマオブジェクト名とは? 注意点:許可されない識別子 解決策 ハイフンがなぜエラーなるのか 引用符で囲まれていない識別子で許可される文字 引用符で囲まれた識別子で許可される文字 なぜ許可され…

今日は、MySQLのプロンプトがカスタマイズできるらしいの日。

目次 目次 とある日 mysql プロンプトとは? プロンプトカスタマイズ トランザクション(\T) デフォルトデータベース(\d) 完全なアカウント名(\U) 俺的おすすめカスタマイズ 〆 とある日 先日MySQL リリースノートでわいわい言う勉強会 8.0.28に参加してき…

今日は、MySQL 8.0.28でもとに戻った「解決されたブール式の型」についての日。

目次 目次 とある日 MySQL 8.0.28変更内容について 型について INT/BIGINT 符号あり/なし バージョン検証 --column-type-infoについて MySQL8.0.27 MySQL8.0.26 MySQL8.0.28 おまけ 〆 とある日 昨日MySQL リリースノートでわいわい言う勉強会 8.0.28に参加…

今日は、MySQLに式と関数の速度を測定できるものがあったの日。

目次 目次 とある日 BENCHMARK ストアドファンクションで検証 〆 とある日 MySQLのベンチマークについて調べてたら、BENCHMARKという式や関数の速度を計測できるものを見つけたので試してみた話です。 BENCHMARK 特定の MySQL 式または関数の速度を測定する…

今日は、GPGキーを更新してMySQL8.0.28をインストールするの日。

目次 目次 とある日 解決策 検証 Docker構築 MySQLインストール(失敗) GPGキー更新 MySQL再インストール 〆 とある日 現在(2022年1月18日 )MySQLがインストールできない人向けです。 GPGキーの更新をしないと正しくインストールされないようです。 bugs.…

今日は、MySQLのクエリプロファイリングについて調べてみたの日。

目次 目次 とある日 クエリをプロファイリングするとは? パフォーマンススキーマを使用したクエリープロファイリング プロファイリング手順 履歴イベントの収集 MySQL :: MySQL 8.0 リファレンスマニュアル :: 27.12.2.1 setup_actors テーブル ステートメ…

今日は、MySQLでストアドファンクションであったエラーについての日。

目次 目次 とある日 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled 発生時のSQL エラー内容 回避方法 グローバル log_bin_trust_function_creators システム…

今日は、MySQLのJSON型ってどんな感じで扱うのの日。

初めに この記事は、MySQL Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiitaのエントリーです。 ↓前日(2021年12月20日)は、@yy_harachi さんの記事です。 MySQLのオンラインDDLでレプリケーション遅延を回避する方法 - Qiita 目次 初めに…

今日は、MySQLのGISを使って検索を試してみるの日。

初めに この記事は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiitaのエントリーです。 検証環境 MySQLで検証しています。 root@6438500bc2d7:/# mysql --version mysql Ver 8.0.24 for Linux on x86_64…

今日は、mysqldumpslowというものがあるのを最近知りましたの日。

目次 目次 とある日 mysqldumpslow — スロークエリーログファイルの要約 検証 tmp/slow.log mysqldumpslow実行 オプション -a -s -t 〆 とある日 MySQLのslow queryを分析するのにmysqldumpslowがあるのをしったので調べました。 mysqldumpslow — スロークエ…

今日は、RDBの良くない設計にするとどうなるのかの日。

初めに この記事は、MySQL Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiitaのエントリーです。 ↓2021年12月12日は、@tmtms さんの記事です。 ruby-mysql - tmtms のメモ 目次 初めに 目次 とある日 良い設計とは? 悪い設計の定義 今回使…

今日は、 optimizer trace 便利らしいので使ってみたの日。

目次 目次 とある日 optimizer_trace有効化 使い方 optimizer_trace検証 比較クエリ IN BETWEEN optimizer_trace実行結果 IN BETWEEN 〆 とある日 それはそうと optimizer trace 便利だから、みんな使おう。— Nayuta Yanagisawa (@NayutaYanagisaw) 2021年11…

今日は、MySQL8.0.27のバイナリの変更について調べてみたの日。

目次 目次 とある日 重要な変更 検証 MySQL 8.0.26 MySQL 8.0.27 解説 BINARYオペレータ CAST(... AS BINARY) CONVERT(expr,type),CONVERT(expr USING transcoding_name) 〆 とある日 MySQL 8.0.27がリリースされました。 追加機能がいくつかあるのですが、…