今日はなにの日。

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

データベース

今日は、MySQLでtables_privテーブルとdbテーブルで権限を確認するの日。

目次 目次 とある日 下準備 SHOW GRANTS FOR mysql.tables_priv mysql.db 〆 とある日 権限付与したあとshow grant for usernameで差分を確認してましたが、テーブル数が多くなればなるほど出力される結果が多くて確認するのが大変でした。 そこで、何かいい…

今日は、データベースの「外部キー」と「JOIN」をドラゴンボールで例えてみたの日。

目次 目次 とある日 「外部キー」はドラゴンレーダー 「JOIN」はドラゴンボールを集める行為 〆 とある日 後輩が、「外部キーとJOINってどういう関係なんですか」って質問してたので言い例えないかなって考えて、いいの思いついたので記録する。 この記事で…

今日は、MySQL 8.1.0でEXPLAIN FORMAT=JSON の結果を使って分析してみたの日。

目次 目次 とある日 EXPLAIN FORMAT=JSON の出力をキャプチャする SQL 構文に関する注意事項 それっぽく使ってみる EXPLAINの結果を格納するテーブル作成 EXPLAIN JSONのデータを格納する access_typeを検索する 〆 とある日 今さながら、8.1.0の変更を少し…

今日は、MySQL 8.0.34で変更されたCURRENT_USER()について触ってみたの日。

目次 目次 とある日 アップデート内容 CURRENT_USER()がテーブルのデフォルト値に使えるようになった 動作を試してみる 気になったことを試してみるの巻 他の関数はデフォルトに対応している? デフォルト値としては使えなくてもINSERTすることはできる? 〆…

今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その3)。

目次 目次 とある日 今日読んだもの 今までの記録 読んでみたメモ MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.2 InnoDB および ACID モデル MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.3 InnoDB マルチバージョン MySQL :: MySQL 8.0 リファレ…

今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その2)。

目次 目次 とある日 今日読んだもの 今までの記録 読んでみたメモ MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.1.1 InnoDB テーブルを使用する利点 MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.1.3 InnoDB がデフォルトのストレージエンジンであ…

今日は、MySQLのリファレンス「第 15 章 InnoDB ストレージエンジン」を読むの日(その1)。

目次 目次 とある日 今日読んだもの 読んでみたメモ MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.1 InnoDB 入門 MySQL :: MySQL 8.0 リファレンスマニュアル :: 1.3 MySQL 8.0 の新機能 〆 とある日 MySQLのリファレンスを読む 1章 - ASMのきもち 上記…

今日は、複合インデックスを使うにはwhere句に書くカラムの順番を合わせないといけないと誤認してた理由の日。

目次 目次 とある日 概要 どういうこと というわけで試してみる 環境 手順 Dockerコンテナ起動 テーブル作成&データ挿入 SQLを実行する オプティマイザトレースの結果 INDEXの順番通り INDEXの順番とは逆 おまけ 〆 とある日 複合インデックスを使うにはwhe…

今日は、MySQL のスロークエリーが判定されるのに順序があるみたいの日。

目次 目次 とある日 スロークエリー判定順序 概要 関係するパラメータ log_slow_admin_statements long_query_time log_queries_not_using_indexes min_examined_row_limit log_throttle_queries_not_using_indexes 動作検証 環境 使うサンプルテーブル 比較…

今日は、前から気になってたmysqlslap を使ってみるの日。

目次 目次 とある日 mysqlslapとは 使ってみた 実行環境 手順 MySQL 8.0.33コンテナ起動 mysqlslapコマンドを実行 コマンドオプション オプションの区分け 重要なオプションの解説 --auto-generate-sql-load-type --concurrency 〆 参考記事 とある日 仕事で…

今日は、MySQLのドキュメントを英語で読み始めたの日(1月分)。

目次 目次 はじめに これはなに? なんでやってるの? 読んだ範囲 MySQLの知らないこと 英単語の知らないこと はじめに これはなに? 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では列の順序は重要ではなさそうの日。

目次 目次 とある日 検証 大きなテーブルを作成する 非常に幅の広いテーブルを作成する さまざまな列へのアクセス まとめ 〆 とある日 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…

今日は、DBSに向けたRDSまとめ日。

目次 目次 とある日 IAM データベース認証 概要 認証トークン 制限 手順 対応バージョン 監査ログ SQL Server 手順 MySQL&MariaDB 手順 Oracle メンテナンスウィンドウ マルチ AZ 配置のメンテナンス モニタリング パフォーマンスガイドライン Performance …

今日は、DBSに向けたAurora まとめの日。

目次 目次 とある日 コンポーネント Aurora エンドポイント タイプ クラスターエンドポイント リーダーエンドポイント カスタムエンドポイント インスタンスエンドポイント レプリカ優先度 クラスターキャッシュ機能 グローバルデータベース 利点 制限 クロ…

今日は、DBSに向けた「Aurora DB クラスターのバックトラック」の日。

目次 目次 とある日 Aurora DB クラスターのバックトラック 概要 ユースケース バックトラックウィンドウ ターゲットバックトラックウィンドウ 実際のバックトラックウィンドウ ターゲットバックトラックウィンドウと実際のバックトラックウィンドウが分かれ…