MySQL 8.0では「GROUP BYによる暗黙のソート」がされなくなるよ
MySQL 5.7の時点で既に宣言はされていた。GROUP BY implicitly sorts by default (that is, in the absence of ASC or DESC designators), but relying on implicit GROUP BY sorting in MySQL 5.7 is deprecated.MySQL :: MySQL 5.7...
View ArticleMySQL 5.5とそれ以前の古いDATETIME型が残っているとMySQL 8.0が起動できない
mysqldが起動できないバグなのか、「 avoid_temporal_upgradeなんてことすると将来的にサポート対象外だよ」がドキュメントに記載されてないのかどっちだか迷っている。MySQL Bugs: #93101: Failed to Populate DD tables when table has OLD-Style DATETIME column (need Doc)MySQL...
View Articlemysql_native_password, caching_sha2_password の速度測り比べ
TL;DR日々の覚書: MySQL 8.0のcaching_sha2_password + 非SSL接続が転けるは目を通してもらっている前提SSL接続同士、非SSL接続同士では mysql_native_passwordと caching_sha2_passwordの接続コストは数百usくらいしか違わないまずは mysql_native_password,...
View Articleスローログ可視化ツールのラッパー、 anemoeater のこの1年を振り返る
この記事は MySQL Casual Advent Calendar 2018の1日目のエントリーです。TL;DR日々の覚書: AnemometerというMySQLスローログ専用の可視化ツールの弱点と、その克服スクリプトのその後まだまだメンテナンスは続いているよ!この1年、 yokogawa-kさんにたくさん助けていただきました。ありがとうございますスローログを食わせてグラフ化する...
View ArticleConoHaの上でひたすらMySQLをビルドする簡単なお仕事 in 2018
このエントリーは ConoHa Advent Calendar 2018の4日目の記事です。昨日は @takato_ezakiさんの ConoHa Wing で自動デプロイして快適に WordPress テーマを更新しよう!でした同時に MySQL Casual Advent Calendar 2018の4日目の記事でもあります。こちらの昨日は @hmatsu47さんの MySQL...
View ArticleマイエスキューエルにはPerl Mongerが必要かもしれないはなし
この記事はPerl Advent Calendar 2018の6つ目の窓です。昨日は @ytnobodyさんの 昔書いたGithub止まりのモジュールをほじくり返す – Test::Proc 篇でした。MySQL Casual Advent Calendar 2018の6つ目の窓でもあります。昨日は @taka_yuki_04さんの...
View Articleutf8mb4_0900_ai_ci の速度をどう見るか
TL;DRMySQL 8.0からデフォルトの照合順序が latin1_swedish_ciから utf8mb4_0900_ai_ciになったさすがに latin1をそのまま使っているとは思えないけれど、 utf8mb4だけで見てもデフォルトは utf8mb4_general_ciから...
View Articleとある豆腐のエラー考察(未完)
このエントリーは 学習記録:12月14日(金):【MySQL8.0アップグレード】5.7.19->5.7.24->8.0.11 アップグレード手順【5.7.24 アップグレード後編-エラーを調べる】 - 叫ぶうさぎの悪ふざけ学習記録:12月13日(木):【MySQL8.0アップグレード】5.7.19->5.7.24->8.0.11 アップグレード手順【5.7.24...
View ArticleペパボがProxySQLならこちらはMySQL Routerだ!
TL;DRパッチはだいぶ下にあります。しかも大したやつじゃないです。9割余談です。このエントリーは GMOペパボ Advent Calendar 2018の26日目の記事です。25日目は kurotakyさんの「結婚式の後に書きます!」の予定だったんですが、どう考えても結婚式の後にブログ書いてる暇があったら奥さんと結婚式の余韻に浸ってください。...
View ArticleInnoDBのテーブル断片化を解消させたいけどもマスターにそんなに容量が残っていない! 時のテクニック
TL;DRトランスポータブルテーブル表領域を使うメンテが必要になるのが大前提で、それでもストレージ容量がカツカツの場合の対策容量に余裕があって、 ALTER TABLE .. ENGINE = InnoDBがオンラインで実行できるならそうする元ネタはこちら。https://mysql-casual.slack.com/archives/C3Z6PH8BD/p1545797450013100(...
View ArticlePHPerKaigi2019 のCfPに5本のMySQLトークを出しました!
TL;DRPHPerKaigi 2019に5本のプロポーザルを出しました障害対応の勘所 of...
View Articleとあるコアラのエラー考察(未完)
日々の覚書: とある豆腐のエラー考察(未完)の時のように、エラーログをもらう機会があったのでちょっと考察。さっきの突然死のせいかInnoDBが破損してMySQLが起動しなくなった時の顔をしています😇— うえしー (@uessy_akr)...
View Articleinnodb_autoinc_lock_mode 0 でINSERT .. SELECT .....
TL;DRinnodb_autoinc_lock_modeが0の場合、ステートメントが始まってから終わるまでまるまるAUTOINC_LOCKで保護する -> 歯抜けが起きないnon 0 の場合、ステートメントが始まった時点でAUTOINC_LOCK -> (2^0 + 2^1 + 2^2 + ..)個autoinc払い出し -> AUTOINC_LOCK解除...
View ArticleAnemometer(結果として anemoeater も)がpt-query-digest 3.0.11とそれ以降で変な集計結果になる話
TL;DRpt-query-digest 3.0.11で、クエリーダイジェストのチェックサムが変わったMD5の下16桁(64ビット、BIGINT UNSIGNED)から、MD5を全部(32桁、128ビット、CHAR(32))使い切るようにこの変更に 本家Anemometerが追従していないので、Anemometerと...
View Article第一印象 of gh-ost
TL;DRギフハフもすなる gh-ostといふものをゼロハチニーゴーもしてみむとしてするなりgithub/gh-ost: GitHub’s Online Schema Migrations for MySQLインストールの仕方と取り敢えず試してみての感想インストールreleasesにrpmパッケージもあるので yumでサクっと入れた。コマンド1個だけが入っているとてもシンプルなパッケージ…$...
View Articlegho-stでスレーブからバイナリーログを食いながらインデックスを足してみる
TL;DRマスターから食ってもスレーブから食っても動作が変わっているような気はしない能動的なスレーブの遅延監視を入れるなら --throttle-control-replicasを自分で入れないといけない昨日の続き。昨日の時点では...
View Articlegh-ostを中断させたらどうなるのかの試み
gh-ost 3日目。gh-ostを中断させたらどうなるのか確認してみる。pt-oscはデフォルトでは中断する時にテンポラリーテーブル(gh-ost的には「ゴーストテーブル」) が残存するテンポラリーテーブルに対するトリガーも残存するな訳だがgh-ostはいかがなものか。取り敢えず Ctrl + Cで終了させてみる$ gh-ost --database=mysqlslap --table=t1...
View Articleストレージエンジンをインストールしている環境でのリストアではまりがちなこと
TL;DRplugin_dirに必要な .soファイルを置いておくのは大前提mysqldumpから戻す時は、戻す前に自分で INSTALL PLUGIN物理バックアップから戻すときは基本的にそのまま戻して起動すればおk周囲1mくらいで2回聞かれたのでメモしておく。対象は ストレージエンジンプラグイン (デーモンプラグインである innodb_memcachedとか...
View Articleそのvarchar型のカラムに入っている値が数字だけかどうかを確認する方法
TL;DRなんか SELECT * FROM t1 WHERE CONCAT('',c1 * 1) != c1であぶりだせるらしいけどなんで? と聞かれたのでその解説。俺は↑のやり方初めて聞いた。。個人的には WHERE c1 NOT RLIKE '^[0-9][0-9]*$'でいいんじゃない?...
View Articleinnotopにmy.cnfや.mylogin.cnfを食わせる方法
TL;DR何も設定しなくても食うけど、 [client]セクションしか読んでくれないので「読んでない」と思われることが多いっぽいそれ以外のセクションを食わせるためには ~/.innotop/innotop.confに記述が必要だけど割と簡単だよinnotopはPerl5製で DBD::mysqlを使っているので、デフォルトファイルの読み込みは mysql_read_default_fileと...
View Article