3087 件中 201 - 210 件を表示
« 前の 10 件 | 次の 10 件 »
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::Sandboxを使っているのだ、すまんな…。

2つのターミナルを用意して、↓の2ステートメントを1秒以内( …

[さらに読む]
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…

Re: 続・歯抜けを埋めるSQL(10万件編)

この記事は

続・歯抜けを埋めるSQL(10万件編) - sakaikの日々雑感~(T)編

への「俺ならこうひねるかな」版です。

やってることは坂井さんと大して変わっていませんが、方向性が結構違うのが面白いのでメモしておきます。

というかSQLだけでやっていないのでタイトルに反しています()

坂井さんの手法でやった時の所要時間はこんなものでした。290ms。


mysql80 237> SET @@cte_max_recursion_depth=100005;

Query OK, 0 rows affected (0.00 sec)

mysql80 237> INSERT INTO t22

    -> WITH RECURSIVE num(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM num WHERE n<(SELECT MAX(id) FROM t22))

    -> SELECT n id, null, null FROM num LEFT OUTER JOIN t22 ON (num.n=t22.id) WHERE t22.id IS …
[さらに読む]
今日は、MySQL Shell にある「アップグレード チェッカー」とやらを試してみるの日。

目次

[さらに読む]
続続・歯抜けを埋めるSQL(WHERE句のRAND()関数に気をつけろ!編)

ひとつ前の日記で、こんなことを書きました。 1000回ループを回して1件ずつDELETEしたのに、1006件が消えている謎は、気持ち悪いので少し考えてみたいと思います。ナゾが解けた方はコメント欄やTwitterやご自身のブログなどで教えてください。 実はこの動作、2回実施しているのですが、1回目は 99029件になりました。こちらは既に削除済みのIDを再度削除に行くなどが発生したのだと理解していたのですが、見直してみるとこれも、ずいぶんと重複しすぎている感もありますね。(10万の中から数字をひとつ決めるのに、こんなに被らないだろうと) 具体的に発生している事象の詳細は、ひとつ前の日記をご覧くだ…

続・歯抜けを埋めるSQL(10万件編)

先日、こんな日記を書きました。 sakaik.hateblo.jp この中で、 この方法で、件数が多くなった場合にどれくらいの速度で動きますかね。 10万件かそこらでは意外とすんなり動く気もしていますが、1000万件となるときついかもという気もします。 と書いたのですが、10万件程度ならすぐに試せそうなので、やってみました。 条件と手順 1から10万までの primary key auto_increment な値を持つ列がある そのうち 1000件ほどを歯抜けにしてみる 前回作った「歯抜けを埋めるSQL」を試してみる テーブルとデータの準備 テーブル作成 mysql> CREATE TABL…

MySQLのオンライン交流会「生マイ」#3を開催しました

『今夜も生でMySQL(仮題) #03』(通称生マイ)を開催しました。「生マイ」は、Discordを使っておしゃべりしましょうという会です。mysql.connpass.com 今回は少なめ お盆休みの関係だと思いたいのですが、今回はずっと3人でおしゃべりしていました。内容は後述しますが、ひとことで言うと「俺得」な感じで、いろんなことを教えてもらえたり、一緒に試してもらえたりして、個人的には大満足の時間でした。参加くださった皆さんありがとうございました。 UnicodeとUTF-8とUTF-16と。 とみたさんが最近書かれたブログを見ながら、MySQLへのキャラセットとコレーションの追加につい…

歯抜け数字を埋めるSQL

MySQLユーザ会のメーリングリストで、こんな話題がありました。 INSERT SELECT でのテーブル別名の使い方「歯抜けの数字を、連番になるようにレコードを追加する」という方法について、相関サブクエリを使用して解決したものですが、これ、相関サブクエリを使わずに今ならどう書くかな~と思って試してみました。 MLへの投稿の本題からはずれているので、自分の日記にて。 やりたいこととデータの準備 PKとして「歯抜け連番」がセットされているテーブルにて、抜けている数字のレコードを追加したい、というのがやりたいことです。 CREATE TABLE tbl2 (id INTEGER PRIMARY K…

今日は、Docker Composeを使ってMySQL8.0のレプリケーションを構成してみるの日。

目次

[さらに読む]
LINE Developer Meetup #73 - MySQL の回に参加(視聴)した話

昨火曜日にオンラインで開催された「LINE Developer Meetup #73 - MySQL」に参加させていただきました。オンライン開催なので「視聴」に近い形態ですが、sli.do や twitter などでわいわいできて、視聴者どうしの会話があったり、登壇者の方も反応してくださったりして、オンラインなのに比較的楽しく「参加」できた気分を味わいました。line.connpass.com 感想的なものは、聞きながらtwitterにほぼ放出したので、一週間近く経った今でも記憶に残っている範囲で、少し書こうと思います。 全体進行 登壇者の方を画面に呼び入れたり一旦控え室に戻っていただいたりの…

3087 件中 201 - 210 件を表示
« 前の 10 件 | 次の 10 件 »