1927 件中 131 - 140 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
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::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…

1927 件中 131 - 140 件を表示
« 前の 10 件 | 次の 10 件 »