Quantcast
Channel: 日々の覚書
Browsing all 581 articles
Browse latest View live

複合プライマリーキー vs サロゲートキーでInnoDB読み取りページ数の比較

TL;DRこの考察の単位は ページ数であって...

View Article


複合プライマリーキー vs サロゲートキーでInnoDB読み取りページ数の比較をもうちょっと機械的にやりたい

日々の覚書: 複合プライマリーキー vs サロゲートキーでInnoDB読み取りページ数の比較の続き。毎回innodb_metricsを眺める方法だとサンプル数が余程限られている状態でもない限りスケールしないので、もうちょっと機械的にやる方法を考える。思いついたのはPercona...

View Article


ERROR 3546 (HY000): @@GLOBAL.GTID_PURGED cannot be changed には実は2種類ある

TL;DRSET GLOBAL gtid_purged = '+?'のプラス付きの記法は、既存の gtid_executedと1つたりともカブってはいけない。RESET MASTERができず、既存の gtid_executedに足したい場合は差分を取って +記号で足してやらないといけないgtid_executedが空でない時に +記号なしの SET GLOBAL gtid_purged =...

View Article

テンポラリーテーブルがストレージを埋め尽くした時のエラー番号の違い on MySQL 8.0.32

TL;DRTempTableストレージエンジンがDisk落ちした時とInnoDB Temporary tableで「同じストレージあふれ」でも微妙にエラー内容が違う前者は ERROR 14 (HY000): Can't change size of file (OS errno 28 - No space left on device) , エラーログ出力なし後者は ERROR 1114...

View Article

Foeign Key制約によって暗黙に作成されたINDEX or NOT

TL;DRMySQL 8.0なら ibd2sdiの結果から判断がつくFoeign Key制約によって暗黙に作成されたINDEXとは何ぞや、という人は↓第63回 MySQLの外部キー(Foreign Key)制約 | gihyo.jp(num, val) を持ったテーブルが2つ、numはどちらでもPKE、valはt1でだけUNIQUE KEY。mysql80 46> SHOW CREATE...

View Article


MySQL 8.0ならGTIDのスキップはもっと簡単になる

TL;DRMySQL 8.0なら SET gtid_next=.., COMMIT, SET gtid_next= AUTOMATICってやらなくても SET GLOBAL gtid_purged = '+..'でスキップさせられるMySQL :: MySQL 8.0 Reference Manual :: 17.1.7.3 Skipping TransactionsとはいえそもそもSQL...

View Article

Image may be NSFW.
Clik here to view.

WinDbgでMySQL on Windowsのミニダンプの中身を見てみる

Microsoft Store から WinDbg Preview をダウンロードするにしたDebugging Tools for Windows のダウンロード - WinDbg - Windows drivers | Microsoft LearnMySQLにミニダンプを吐かせるのはLinuxと同じでmy.iniの [mysqld]セクションに...

View Article

MySQL 8.0で導入された動的権限を利用してたけのこ派にCOUNTを使えなくする

TL;DR今日は2023年4月1日ですし、私はたけのこ派です動的権限とは、MySQL 8.0で加わった「 mysql.userやその他のテーブルに独自のカラムを持た ないタイプの権限」のことらしい。MySQL :: MySQL 8.0 リファレンスマニュアル :: 6.2.2 MySQL で提供される権限↓このへんが「静的権限」でmysql> DESC mysql.user;...

View Article


MySQL 8.0.32にデフォルトコレーションをutf8mb4_general_ciにするパッチを当てる

地味にgrepから始める。$ grep -r 'utf8mb4_0900_ai_ci' | grep -v mysql-test | grep -v scripts/fill_help_tables.sql | grep -v gunit client/mysqltest.cc: &my_charset_utf8mb4_0900_ai_ci; /* Default charset */...

View Article


DATETIME型と現在時刻の差分が秒数でほしい時に"-"で比較してはいけない

TL;DRTIMESTAMPDIFFを使う知ってたはずなのにやらかしたので自戒を込めてメモmysql80 65> CREATE TABLE t11 (dt DATETIME); Query OK, 0 rows affected (0.14 sec) mysql80 65> INSERT INTO t11 VALUES (NOW()); Query OK, 1 row affected...

View Article

MySQL 8.0でtx_isolationを使わせるようにするパッチ

TL;DRちょっと試してみただけなのでフツーに使うことはまずない。自分ですら使おうと思っていない。パッチはこれだけ。$ diff ./sql/sys_vars.cc.orig ./sql/sys_vars.cc 5196a5197,5204 > // NO_CMD_LINE - different name of the option > static...

View Article

Image may be NSFW.
Clik here to view.

gtid_mode=OFFの移行元MySQLからGroupReplicationにマイグレーションするはなし

origin側はgtid_mode=OFF, binlog_format=MIXEDでこれを変えてはいけないMySQLはこのケースに限り 8.0.28以外でも良いメンテナンスには入れられる。ただし、メンテナンスウィンドウ内でMyDumperをかけられるほどデータは小さくないなおGroupReplication ≠ InnoDB Clusterとした。つまりMySQL Shellの支援とMySQL...

View Article

MySQLの user@'%'にまつわる謎仕様

TL;DR昔から user@'%'と user@'xxx'の 両方があって認証が ‘xxx’ の方で行われた場合、そのセッションは user@'%'と user@'xxx'の両方の権限を持つ謎仕様があったMySQL 8.2.0のリリースノートにある In addition, the treatment of %by the server as a synonym for localhost when...

View Article


ソースビルドのmysqldでthdがgdbで掴めない (MINIMAL_RELWITHDEBINFO=ON)

TL;DR8.0.29とそれ以降でソースビルドをしてる人だけだと思うcmake する時に -DMINIMAL_RELWITHDEBINFO=OFF するgdbでmysqldにアタッチした時に色々見つからなくて困った。thdとか全然見えない。$ gdb -p $(pidof mysqld) (gdb) b PT_show_processlist::make_cmd +b...

View Article

SHOW PROCESSLISTとinformation_schema.processlistとperformance_schema.processlistと

TL;DR呼び出し元エントリーポイントリスト関数SHOW PROCESSLIST...

View Article


MySQL 8.0.35で旧McAfeeのmysql-auditをビルドしてみる

【2023/11/21 15:58】タイトルが8.0.32だったけど8.0.35でした…TL;DRビルドしてみただけ。動作確認はしていないMySQL...

View Article

ConoHaの上でひたすらMySQLをビルドする in 2023

この記事は ConoHaのカレンダー | Advent Calendar 2023 と MySQLのカレンダー | Advent Calendar 2023 の5日目の記事です。去年は CentOS 9 Stream でビルドしたらしい。日々の覚書: また今年もConoHaの上でMySQLをビルドする季節がやってきた2021年 ConoHaの上でひたすらMySQLをビルドする 20212020年...

View Article


明日使えない地味なシェルスクリプト用ワンライナー集

この記事は MySQLのカレンダー | Advent Calendar 2023 の7日目の記事です。6日目は けんつ さんの MySQL いい感じにコントリビュートする方法(非公式) - それが僕には楽しかったんです。...

View Article

MySQL公式のDockerリポジトリがcontainer-registry.oracle.comに引っ越していた

この記事は MySQLのカレンダー | Advent Calendar 2023 の10日目の記事です。昨日は meijik さんの 最新のSQL標準(SQL:2023)とFirebird/MySQL/PostgreSQL | キムラデービーブログ でした。TL;DRdockerhub のMySQLイメージはもうメンテナンスしていないっぽいややこしいのだけれど、 docker pull mysql...

View Article

MySQLの論理バックアップにおける2段階のViewのリストア

TL;DRmysqldump とかが CREATE VIEW v1 AS SELECT 1 AS num, 1 AS val とかいう一見VIEW定義となんの関係もない CREATE VIEW 文を吐く理由mysqldumpは単にアルファベット順にテーブルやビューの定義を取得するので、シンプルに直接 CREATE VIEW を書いてしまうと順番によってはリストアに転ける。mysql80 38>...

View Article
Browsing all 581 articles
Browse latest View live