今日はなにの日。

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

MySQL

今日は、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がリリースされました。 追加機能がいくつかあるのですが、…

今日は、Auroraでは味わえないMySQL 8.0のワクワク要素の日。

目次 目次 とある日 はじめに Amazon Aurora AmazonAuroraメジャーバージョン MySQL 8系とMySQL 5系 要するにこういうこと AWSでMySQL8.0だと困ること Amazon RDS Proxy による接続の管理 ワクワク要素 アップデート 更新内容比較 MySQL 8.0.26での変更(202…

今日は、MySQLのマイナーバージョンアップのコンテナを準備の日。

目次 目次 とある日 はじめに Docker docker-compose install MySQL docker-compose.yml Directory docker-compose.yml my.cnf mylogin.sh 使用例 command 構築中のエラー mysql: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignor…

今日は、AWSでMySQL検証環境を最速構築の日。

目次 目次 とある日 はじめに 想定読者 注意 AWSでMySQL最速構築 概要 構築速度 MySQL構築環境 MySQLバージョン CDK ディレクトリ構造 コード EC2mysql.py EIPについて EC2セキュリティグループ app.py ユーザデータ 概要 スクリプト MySQLインストール MySQ…

今日は、SHOW ENGINE INNODB STATUSについての日。

目次 目次 とある日 はじめに SHOW ENGINE INNODB STATUS 前回の記事 SHOW ENGINE INNODB STATUS実行結果 Status BACKGROUND THREAD SEMAPHORES TRANSACTIONS FILE I/O INSERT BUFFER AND ADAPTIVE HASH INDEX LOG BUFFER POOL AND MEMORY ROW OPERATIONS 〆…

今日は、DBAとしてたった一つだけ監視するならの日。

目次 目次 とある日 はじめに 検証環境 元ツイート補足 データベースリライアビリティエンジニアリング ――回復力のあるデータベースシステムの設計と運用 DBRE DBREJP slowquery ツイート 概要 5.4.5 スロークエリーログ 検証 slowquery設定 SQL実行確認 SHO…

今日は、情報収集の方法MySQLとAWSについての日。

目次 目次 とある日 Twitter MySQL AWS 公式ニュース MySQL AWS 個人 or 企業のブログ MySQL AWS 各情報のまとめ方法 Slack RSS ブログ OneTab 〆 とある日 前の記事で情報収集の大切さを説いたので。 主にMySQLとAWSで実践している情報収集の方法を書きます…

今日は、MySQLのサーバシステム変数の設定記録の日。

目次 目次 とある日 環境 Docker Desktop ゲストOS MySQL サーバーシステム変数 GLOBAL SESSION 確認方法 変更方法 設定値 autocomit general_log general_log_file my.cnf 場所 設定値 準備 サーバシステム変数確認 〆 とある日 MySQLを新規で構築するたび…

今日は、MySQL8.0.24の変更点オプティマイザーノートについての日。

目次 目次 とある日 オプティマイザーノート SQL 変換検証 オプティマイザ変換前サブクエリ 実行計画 オプティマイザ変換後外部結合クエリ 実行計画 おまけ速度計測 optimizer_switch flag subquery_to_derived(本題) デフォルト値 クエリ変換検証 1. 現在…

今日は、MySQL8.0.23から8.0.24アップデートに向けての日。

目次 目次 とある日 環境 MySQL8.0.24 アップデート手順 1. YUM アップデート 2. MySQL 停止 3. RPM ダウンロード 3.1 WinSCP ファイル転送 4. RPM 展開 5. RPM インストール 5.1 エラー: 依存性の欠如 5.2 please update the tmpfiles.d/ drop-in file acco…

今日は、MySQLの監視を試してみたの日。

目次 目次 とある日 環境 ロングクエリー監視 ロングクエリー確認 Commandについて コネクション数監視 Threads_connected max_connections AUTO_INCREMENT監視 Uptime監視 Uptime history_list_length監視 15.8.9構成のパージ 〆 とある日 speakerdeck.com …

今日は、外部キー制約参照同士テーブルの日。

目次 目次 とある日 環境 テーブル定義 社員 組織 テーブル作成手順 FOREIGN_KEY_CHECKS CREATE TABLE ALTER TABLE INSERT INTO UPDATE SET SELECT 外部キーの問題 社員テーブルデータ削除 組織テーブルデータ削除 テーブル再設計 〆 とある日 応用情報技術…

今日は、SQL勉強して三年目だがUsingとOnの気づかなかった違いの日。

目次 目次 とある日 環境 USINGとONの違いについて 1. 同一列名 2.結合後列数減少 列数減少による問題 Using On 気づかなかった理由 Onの多用 結合列の参照をしない 〆 とある日 とある内容について検証しているときに気づいたSQLのUSINGとONの違いについて…

今日は、RECURSIVEで再帰の罠にかかったの日。

目次 目次 とある日 RECURSIVEとは WITH(共通テーブル式) RECURSIVE(再帰共通テーブル式) 実践 テーブル定義 再帰共通テーブル SQLエラー [3636] 発生 比較IDミス SQL修正 〆 参考記事 とある日 RECURSIVEを使ってみたかった。 ただそれだけの理由。 REC…

今日は、論理削除のフラグ列にはなんの型の日。

目次 目次 とある日 環境 検証内容 いざ検証 DATA テーブル構造 データ生成 NULLデータ生成 INDEX作成 INDEX検索 検索速度 否定検索 否定検索速度 検索結果 CHAR テーブル構造 データ生成 INDEX作成 INDEX検索 検索速度 FALSE検索 否定検索 FALSE検索速度 否…

今日は、range_optimizer_max_mem_sizeの値が低いと、全表スキャンが発生する可能性がありますの日。

目次 目次 とある日 記事概要 例え話 range_optimizer_max_mem_sizeとは 範囲オプティマイザ 単一部分インデックス 単一部分インデックス使用条件 単一部分インデックス例 検証 検証環境 下準備 検証テーブル作成 検証データ生成 データ確認 range_optimizer…

今日は、MySQLのサーバーシステム変数について調べたの日。

目次 目次 とある日 サーバーシステム変数 参照方法 サーバーシステム変数特選3選 range_optimizer_max_mem_size transaction_isolation version SHOWVARIABLESステートメント スコープ GLOBAL SESSION デフォルト値 検索 LIKE句検索(完全一致) LIKE句検索…

今日は、MySQL8.0をマイナーバージョンアップグレードで最新の日。

目次 目次 とある日 環境 アップグレード MySQLサーバーの停止 MySQLYumリポジトリの追加 公式ページのコマンド 実際に行ったコマンド MySQL Yumリポジトリ確認 デフォルトのMySQLモジュールを無効にする MySQLのインストール MySQLサーバーの起動 バージョ…

今日は、MySQL8.0.23で追加された非表示の列の日。

目次 目次 とある日 環境 非表示列とは 使用用途 列追加時の不具合回避 意図しないデータ流失を阻止 いざ実践 テーブル作成 テーブル構造確認 データ挿入 データ挿入後SELECT文 データ挿入後テーブル構造 実験 暗黙のINSERT 明示的 暗黙的 INVISIBLE列にINDE…

今日は、AUTO_INCREMENTに対してバルクインサートをしたときの日。

目次 目次 とある日 環境 Oracle VM VirtualBox DBeaver Tera Term ホスト PC ゲスト PC OS メモリ ストレージ MySQL 謎現象発動 テーブル作成 バルクインサート AUTO_INCREMENT値再確認 謎解決 innodb_autoinc_lock_mode = 2 解決までのプロセス 謎発覚 発…

今日は、MySQLのTRUNCATEとDELETEのコアな違いの日。

目次 目次 とある日 結論 環境 Oracle VM VirtualBox DBeaver Tera Term ホスト PC ゲスト PC OS メモリ ストレージ MySQL 検証 検証内容 検証テーブル作成 TRUNCATE DELETE 〆 とある日 とあるテーブル検証をしてて、TRUNCATEを実行したときに起こったお話…

今日は、2020年アドベントカレンダーその後の日。

目次 目次 とある日 今日は、DBで日付にはDATE型?VARCHAR型どっちの日。 ALTER TABLE 前 ibdファイルサイズ ALTER TABLE ALTER TABLE 後 ibdファイルサイズ 今日は、MySQL8.0 GISを使って距離と三角形の面積求めてみたの日。 2点間の距離ストアドプロシージ…

今日は、MySQL8.0 GISを使って距離と三角形の面積求めてみたの日。

初めに この記事はRDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020のエントリーです。 目次 初めに 目次 とある日 環境 Oracle VM VirtualBox DBeaver ホスト PC ゲスト PC OS メモリ ストレージ MySQL 二点間の距離 公式 いざ求める! 問題 2点間の…

今日は、DBで日付にはDATE型?VARCHAR型どっちの日。

初めに この記事はMySQL Advent Calendar 2020の14日目の記事です。 アドベントカレンダー参加は、初めてなので至らないところもあるとは思いますが、お手柔らかにお願いします。 とても長い内容となってしまったので、結論だけご覧になりたい方は。 目次か…

今日は、MySQL Tunerを試してみたの日。

目次 目次 とある日 環境 ホストPC ゲストPC Oracle VM VirtualBox OS メモリ ストレージ MySQL いざMySQL Tuner MySQL Tunerとは 注意事項 インストール 実行 2ndトライ 3ndトライ 結果 出力結果(英語) 出力結果(日本語翻訳) 詳細 /var/log/mysql/mysql…

今日は、MySQL EXPLAINがデータベースを破壊する可能性がある場合の日。

目次 目次 とある日 環境 Oracle VM VirtualBox OS MySQL 実践 一般ログ確認 EXPLAIN DML LOG EXPLAIN FUNCTION LOG EXPLAIN DML TEST EXPLAIN概要 INSERT DELETE UPDATE 〆 とある日 Uncommon Sense MySQL – When EXPLAIN Can Trash Your Database とあるバ…

今日は、MAX関数2つでやらかしてた話の日。

目次 目次 とある日 テーブル定義 データ生成 問題のMAX関数 解決方法 おまけINDEX 〆 とある日 select max(message) , max(create_at) from historys where history_id = 5; このSQLの意図は、history_id が5のユーザのcreate_atが最大のmessageの内容がほ…

今日は、実験用環境MySQL8.0構築メモの日。

目次 目次 とある日 CentOS8構築 1. ストレージ容量 2. メモリ 3.ネットワーク 4. GUI操作 dnf update MySQL構築 MySQLインストール MySQLの初期設定 〆 とある日 趣味に使うDBがないのでVirtuallboxを使って構築する手順のメモを残す。 OS:CentOS8 DB:MySQL…

今日は、PythonでSQL 結果を綺麗に表示するパッケージ作り始めたの日。

目次 目次 とある日 GitHub そもそも表形式出力ないの? TPRINT 現在作成途中 MySQL 形式出力プログラム 1.CreateData(データ生成) 2.CreateColumnDict(カラムデータ切り出し) 3.GetColumnValue({カラム名:最大文字数}取得) 4.GetValueList(指定した key を…

今日は、docker-composeの苦労話の日。

目次 目次 とある日 テスト環境と本番環境の2つのMySQL構築 docker-composeで解決 docker-composeの手間 docker-compose.ymlのVersion違い 原因わかって自分馬鹿だなって思ったこと 〆 とある日 Oracleを使っていたが、Oracle clientがうまく行かなかったの…