2926 件中 1 - 10 件を表示
次の 10 件 »
小ネタ/MySQL 8.0(Aurora MySQL v3)にバージョンアップしたときの実行計画調整にオプティマイザヒントを使う

AWS の Aurora MySQL v1 の EoL が迫り、また MySQL 5.7 の EoL もそう遠い話ではなくなった現在、Aurora MySQL v3 や MySQL 8.0 への移行…

『Club MySQL #6 MySQL Shell for VS Codeで遊んじゃおう』を開催しました

Club MySQL というオンラインイベントを開催しました。mysql.connpass.com 日本MySQLユーザ会ではこの一年ほど、セミナー系よりは交流系のオンラインイベントに力を入れていたので、こういったセミナー形式のイベントは久々になります*1。 今回は「Club MySQL」という、ひとりのお話をじっくりと聞かせていただこうという趣旨の開催として、梶山さんに「MySQL Shell」と「MySQL Shell を VSC Codeから使える MySQL Shell for VS Code」のお話をたっぷり聞かせてもらいました。時々思惑と異なる動作をしたり、接続先を勘違いして欲しい…

MySQL 8.0.30でもrpl_semi_sync_master_enabledとrpl_semi_sync_source_enabledは同じものではない

TL;DR

  • rpl_semi_sync_master_enabledsemisync_master.so 由来で rpl_semi_sync_source_eanbledsemisync_source.so 由来
    • 他のMaster/Source系と違って、MySQLサーバーの中で丸められているわけではなく、 INSTALL PLUGIN した時にどちらを入れたかに依存する

rpl_semi_sync_master_enabledrpl_semi_sync_source_eanbled (enabledに限らず、 rpl_semi_sync_*

[さらに読む]
第51回ニフクラエンジニアミートアップで「これから始める人のための」SQL入門のお話をしました

ニフクラエンジニアミートアップ様にお声がけをいただいて、このたび「第51回」のイベントにて登壇させていただきました。 fujitsufjct.connpass.com この4日前にも似たようなレイヤである「入門」のお話をする場があり、期間が近いこともあって「同じ内容でいいよ」としてお誘いいただいていたのですが、当日が近づくにつれて気合いが入ってきて、まったく新たに今回用の構成を組み立て直しました(一部ページの再利用はあります)。 時間に限りがあることもあり「何を伝えないか」に頭を悩ませましたが、まったくデータベース管理システム(DBMS)を触ったことがない人にイメージをつかんでもらうところを最…

LLイベント(ODC2022)でデータベース超入門のお話をしました

お誘いいただいて、LLイベントでSQLの超入門のお話をさせていただきました。 LLイベントは、当初(20年近く前)から「Lightweight Language」のイベントとして長らく開催されてきましたが、Lightweight に限らずもっと幅広い言語を学ぼうということで、2017年に Learn Languages の略ということに変わったそうです。 https://ll.jus.or.jp/2022/ 今回のLLイベントは、Open Developers Conference (ODC)併催ということで、ODCの1トラックをもらう形で開催されました。 https://event.ospn…

MySQL on Windowsで8.0.20とそれ以降のmysqld.exeが--skip-grant-tablesでクラッシュすることがある

TL;DR

  • パラメーターの組み合わせを間違えた場合、本来Abortして起動しないもの(ここまでは意図的)がAbortの処理に失敗してクラッシュする
  • skip-grant-tablesしたい時はmy.iniに一緒にshared-memoryを書いてね!

MySQL 8.0では skip-grant-tables

[さらに読む]
PKの無いテーブルに、後からAUTO_INCREMENT PRIMARY KEYなカラムを足すときの罠


TL;DR

  • InnoDBの暗黙の行IDはテーブルにINSERTした順番で払い出される

  • ソースでは並列で走ると、INSERTした順番がCOMMITした順番とは限らない

  • レプリカではMulti Thread Applierを使っていない限り、COMMITした順番にINSERTがされる

  • よってソースとレプリカでは暗黙の行IDがズレることがある

  • 【2022/08/25 12:01】書き込みロックをとっても(テーブルを読み書き一切できない時間があって)良いなら多少安全にやる方法はある

[さらに読む]
MySQLリリースノートで(略)勉強会8.0.30を開催しました

MySQL 8.0.30 のリリースノートをみてわいわい言う勉強会を開催しました。mysql.connpass.com ここ数回は18時から開催していたところ、今回19時からの開催にしてみましたが、個人的には半端な時間だなぁという印象でした。皆さんにも尋ねたところ、まさに十人十色のご都合があり、お話を聞かせてもらいたい方もいっぱいいて、みんなが合う時間帯を見つける難しさを感じました。とはいいながらも時間を工面して参加してくださった皆さん、本当にありがとうございました! あと、アレです。「車座になってわいわい言うような、顔の見えるイベントをやりたい」という趣旨でカメラオンを(案内ページでは)お願…

replica_parallel_workers > 1 && replica_preserve_commit_order=ON && slave_parallel_type = LOGICAL_CLOCK && FLUSH PRIVILEGES + アカウント権限周りのステートメントをほぼ同時に打つとMySQLがデッドロックすることがある

TL;DR

再現方法。

8.0.19でレプリケーション設定をしたMySQLを用意する(8.0.28では再現しなかった。5.7.39でも今のところ再現していない)


$ make_replication_sandbox --how_many_slaves=1 8.0.19

$ cd sandboxes/rsandbox_8_0_19/

$ vim master/my.sandbox.cnf

..

binlog_group_commit_sync_delay = 1000000 ### binlogのgroup_commitを起こしやすくするため

$ vim node1/my.sandbox.cnf

..

slave_parallel_workers = 2

slave_preserve_commit_order = ON

slave_parallel_type = LOGICAL_CLOCK

$ ./restart_all

[さらに読む]
MySQL: ゼロはFALSE、イチはTRUE

MySQLにおける、TRUEとFALSEとゼロとイチ。 同僚が WHERE column1 = 1 OR 2 が全ての行を返すと一瞬で看破していてすごい— yoku0825 (@yoku0825) 2022年8月15日 同僚が WHERE column1 = 1 OR 2 が全ての行を返すと一瞬で看破していてすごい 後者で悩まされたの思い出したなぁselect * from sample where id = 1 or 2;+----+-----+| id | col |+----+-----+| 1 | a || 2 | b || 3 | c |+----+-----+select * fr…

2926 件中 1 - 10 件を表示
次の 10 件 »