InnoDBのCHECK TABLEが何をやっているのかざっと見てみたメモ
MySQL 8.0.46ベースに見ていく。まずは俺の好きな sql/sql_yacc.yyからダイブ。 CHECK TABLEの定義はこのへん。 9627 check_table_stmt: 9628 CHECK_SYM table_or_tables table_list opt_mi_check_types 9629 { 9630 $$= NEW_PTN...
View ArticleALTER TABLEがMetadata Lockで詰まらされた時に検知する何か
TL;DRyt-mdl-checkerというスクリプトを書いたperformance_schema.metadata_locksから PENDINGになっている EXCLUSIVEなロックを引いて、同じテーブルで既に GRANTEDになっているやつを...
View ArticleGroup ReplicationでのExecuted_Gtid_Setの進み方
TL;DRたとえシングルプライマリモードだろうと、GTIDは「そのマシンが使うレンジ」が先に割り当てられて、その中からGTIDを払い出していくレンジの大きさは group_replication_gtid_assignment_block_size...
View ArticleMySQL Shellのフルバックアップとmysqlbinlogを合わせてPITR
MySQL ShellのdumpInstanceとMySQL ShellのdumpBinlogsではなく MySQL ShellのdumpInstanceとmysqlbinlogの組み合わせでのPITRテスト用コンテナの起動とテスト用のデータ作成とハートビートの書き込み。GTIDは有効な状態。$ yt-sandbox 8.0 [3254174] NOTE: Generate Sandbox...
View ArticleMySQL 5.7とそれ以前のpartial_revokesもどき
TL;DRさっさとMySQL 8.0とそれ以降にアップグレードして partial_revokesを使う過去にはこんなテクニックがあったんだよという記憶だけ日々の覚書: GRANTでデータベース名にワイルドカードを指定することとpartial...
View ArticleMySQL 9.7 Early Release(無印)とMySQL 9.7 Early Release2の違い
TL;DR何かを直した結果テストケースが膨らんでいるのはわかるその一方で enable_cascade_triggersなる機能が増えていて面白かった以下ピコ太郎風にお願いします(?)I have a MySQL 9.7 Early Release (first) ..ダウンロードは https://t.co/eD2BeHLWbZからだ!MySQL Community Early Access...
View Articleansibleのcommunity.mysql.mysql_userでauth_socketでroot@localhostを作る
未来の自分にメモ。MySQLには auth_socketプラグインがあるので、root@localhostをパスワードレスにしてOS rootからしかアクセスできなくすることができる(今日日OS rootに直接sshする機会はないと思うのでつまり sudo mysqlでしかアクセスできなくする)my.cnfのテンプレートファイルか何かの [mysqld]セクションに...
View ArticleInnoDB FTSがメモリを食う件その2 tcmallocでいくらかマシになりそう
日々の覚書: InnoDB FULLTEXT KEYがメモリを食う件(未解決) の続き。何がメモリを使ってるのかを performance_schema.memory_summary_global_by_event_nameテーブルで(できないだろうなと思いながら)観測してみる。mysql80> RESTART; $ sysbench...
View ArticleMySQL 5.7とそれ以前で変な作り方をしたトリガーがmysqldumpで流し込んだ時にSyntax Errorでエラーになる
そもそもこの構文破壊されたCREATE TRIGGER文は、DELIMITERの変更とバージョン指定コメント構文が揃わないと起こらないので、おそらくmysqldumpで引っこ抜いたトリガー定義を間違っていじったりコピペし間違えた時くらいしか起こらない気がする。が、一度この状態になるとそれ以降のmysqldumpで発火する。How to repeatMySQL...
View Article今度こそ自力ビルドのMySQL 9.7.0-erと公式ビルドMySQL 9.7.0-erの測り比べ
前回とは趣向を変えて、自力ビルドと公式ビルドの差を試す。自力ビルドは大したオプションを与えずにコンパイルするだけ。$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ../mysql-9.7.0-er $ make -j4 $ sudo make install $ cd /usr/local/mysql $ bin/mysqld...
View ArticleMySQL 9.6.0とMySQL 9.7.0-er 公式ビルド済みバイナリの測り比べ
MySQL 9.7.0-erではPGO(Profile Guided Optimization)が有効になっているらしいので、それまでのバイナリよりもちょっと性能が良さそう。あと、これはビルドの中で有効にするので手でビルドしたものよりもちょっと性能が良いはず。MySQL コミュニティ版のEarly Access リリースビルド | mysql-jpというわけで雑ベンチ。 $ cat...
View ArticleInnoDB FULLTEXT KEYがメモリを食う件(未解決)
準備$ sysbench --mysql-socket=/usr/mysql/8.0.45/data/mysql.sock --mysql-user=root oltp_common --table_size=1000000 prepare mysql80 30> SELECT format_bytes(@@innodb_buffer_pool_size);...
View ArticleALTER TABLE .. ADD KEY .. がERROR 1878 (HY000): Temporary file write failure....
TL;DRなんか見慣れない感じがするのは ALTER TABLE .. ADD INDEX .., ALGORITHM = INPLACE (Fast Index Creation)の時に起こるエラーだからコード上は ALTER TABLE以外にもHash...
View ArticleDBD::mysqlで mysql_ssl => 1すると接続が SSL connection error: self signed...
TL;DR単に mysql_ssl=1で接続しようとすると転けるmysql_ssl=1;mysql_ssl_verify_server_cert=0なら良いかと思うと SSL connection error: Enforcing SSL encryption is not supported without mysql_ssl_verify_server_certで転けるDBD::mysql が...
View ArticleMySQL 8.0のEOLに際して、ぼくと8.0のおもいで
この記事は MySQL - Qiita Advent Calendar 2025の25日目の記事です。メリークリスマス!昨日は日本で一番MySQL Studioに詳しいという噂の mikomaさんによる MySQL AIとMySQL Studioをざっくりとでした。さて掲題のとおりMySQL 8.0が来年 2026年の4月にEOL (End Of Lifetime) を迎えるわけですが、MySQL...
View ArticleMySQL RouterのRead-Write Splitting…の前に、前提条件になっているConnection...
この記事は MySQL - Qiita Advent Calendar 2025の21日目の記事です。昨日は @meijikさんの MedianやPercentile_%が欲しい連合会(Firebird/MySQL)でした。ふと MySQL RouterのRead-Write Splittingの設定を見ていたら、前提条件として connection_sharing: must be set to...
View Article最近のmysqlコマンドラインクライアントの変更を見てみる
この記事は MySQL - Qiita Advent Calendar 2025の15日目の記事です。昨日は @meijikさんの 君はMySQL RP を知っているか?!でした。ここ最近(?) 小さな mysqlコマンドラインクライアントへの変更が入っているのでそれを紹介します。MySQLサーバー ( mysqld )...
View Article今年もConoHaのVPSでMySQLをビルドする 2025年
この記事は ConoHa - Qiita Advent Calendar 2025の7番目の窓です。昨日は 8mitsuさんの ConoHaをMCPで操作してみたでした。この記事は MySQL - Qiita Advent Calendar 2025の7番目の窓でもあります。こちらは昨日は @taka_yuki_04さんの MySQL...
View Article自分のためのMySQLのSandboxが欲しかったのでyt-sandboxを作った
この記事は MySQL - Qiita Advent Calendar 2025の4日目の記事です。昨日は @meijikさんの 各ご家庭(Firebird/MySQL/PostgreSQL)のUUID事情(主に4と7)でした。MySQLで自分用のサンドボックス環境…といえば長年...
View Article