3087 件中 221 - 230 件を表示
« 前の 10 件 | 次の 10 件 »
羽生先生99期、ソータ先生9期。ではタイトル戦の少なかった時代の大山先生は何期相当?をSQLを使って雑に求めてみる

将棋のタイトル獲得期数の話をしていると、「昔はタイトル戦自体が少なかったから」「タイトル戦が3つしかなかった時代の大山先生が今の8つ時代ならいくつ獲っただろうね」という話題になることも多いですね。じゃぁ、年4つの時代に4つとも獲れば(今で言うところの)8個相当、というように重み付けをしてみたらどうなるんだろう、と試してみた日記です。 もちろんタイトル戦が多くなれば日程が詰まって準備の時間が少なくなるとか疲労がたまるとか、まったく条件が同じというわけではありませんが、お遊びとしてお付き合いいただけたらと思います。 データの用意 ネットで公開されているタイトル保持者データを、Excelとテキストフ…

xtrabackup 8.0.29とINSTANT COLUMNと

 

TL;DR


 $ xtrabackup --version

2022-07-20T18:36:05.410933+09:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --server-id=1 --log_bin=mysql-bin --log-bin-index=bin.index --innodb_buffer_pool_size=60G --innodb_file_per_table=1 --innodb_flush_method=O_DIRECT

xtrabackup version 8.0.29-22 based on MySQL server 8.0.29 Linux (x86_64) (revision id: c31e7ddcce3)

INSTANT COLUMNが無ければ、Vanilla MySQL …

[さらに読む]
MySQL: desc は explain !?

別件の確認のために MySQL マニュアルを見ていて、とんでもない事に気づいてしまいました。 The DESCRIBE and EXPLAIN statements are synonyms. MySQL :: MySQL 8.0 Reference Manual :: 13.8.2 EXPLAIN Statement ご存じの通り、MySQL において、DESC (または DESCRIBE)はテーブル定義を確認するときに使用するもの、EXPLAINは実行計画を確認するものとして知られています。こいつらがシノニムだっただと・・・・・!!|???. 私の知ってる DESCの使い方: mysql>…

COUNT()関数の中身の書き方による動作の違い

自分では「知っている」と思っていても、会話の中でふと自信がなくなることってありますよね。 自分の知識として「常識」になっているけど、気づけば10年以上も意識して試したことのないものとか。 表題のテーマが、今回の私のソレです。 ということで、COUNT(*) とか COUNT(カラム名) とかの書き方で動作がどう変わるのか改めて試した結果を整理してみた、という、初心者向きの内容です。 どんな書き方があるか COUNT(*) COUNT(カラム名) COUNT(DISTINCT カラム名) これらはそのカラムが NULL の行が存在するか否かで結果が変わります。 サンプルデータ CREATE TA…

オンラインでMySQLとかの話をわいわいする「今夜も生でMySQL(仮題)」を開催しました

長らくオフラインのイベントを開催できないと、ざっくばらんにわいわいと語り合うあの雰囲気を忘れそうにもなり、また、恋しくもなります。 オンラインで、何か少しでもあの雰囲気を作ることはできないか、と悩んだ結果、こんなイベントをやってみています。mysql.connpass.com Discordを使って、みんなで集まる時間を決めて、あとは話題もなにも事前には決めない。 集まった人で、たまたまそのときに話題になったもので盛り上がったり盛り下がったりする、飲み会のあの雰囲気になれたらいいなぁと、先月から開催してみています。 まずは月1回ずつ、少なくとも3回は続けてみるつもりでやっていますが、意外と盛り…

MySQLのLIMIT句の入れ子による面白い挙動と将来リリースでの修正予定

とみたさんから、MySQLの次の次のバージョンで挙動が変更になる話を教えてもらったので、記録。 mysql> use mysql mysql> SELECT user FROM user LIMIT 2; +------------------+ | user | +------------------+ | mysql.infoschema | | mysql.session | +------------------+ 2 rows in set (0.00 sec) 適当なテーブルから LIMIT句を使って2件のデータを取得したもの。これはまぁ普通の挙動。 次に、これを入れ子にしてみる。…

今日は、MySQL 8.0 にて JOIN_FIXED_ORDERを使って JOIN する順番を指定してチューニング検証してみたの日。

目次

[さらに読む]
mysql_use_result(サーバーサイドバッファリング) vs. history list length


TL;DR

  • トランザクション分離レベルがたとえREAD-UNCOMMITTEDだとしても、クエリの実行中はhistory list lengthは伸びていく

    • REPEATABLE-READ .. トランザクション中はundo recordをパージできない

    • READ-COMMITTED, READ-UNCOMMITTED .. クエリの実行中はundo recordをパージできない

  • ところで、 mysql_use_result はSQLの評価が終わった後に結果セットをクライアントに送信するのを遅延させる(サーバーサイドでバッファリングさせる)ので、クライアントが結果セットを全部読みだしてくれるまでは「MySQL上ではクエリ実行中扱い」

    • というわけで、history list …
[さらに読む]
MySQL8.0におけるSKIP LOCKED

前回のブログで、MySQLとPostgreSQLの基本的なロックに関してはまとめたので、ここでは、MySQL8.0から加わっている。SKIP LOCKEDとNOWAITオプションについて追記します。

RDBMSにおけるLockの挙動

MySQL8.0 (NOWAIT and SKIP LOCKED)

WL#3597: Implement NOWAIT and SKIP LOCKED
WL#8919: InnoDB: Implement NOWAIT and SKIP LOCKED

これまでの挙動としては、LOCK TIMEOUT待ちが主なレスポンスでした。

LOCK Wait and TimeoutMySQL8.0では、以下オプションが利用可能です。

  • for update of <table名> SKIP LOCKED; /*** …
[さらに読む]
どうしてもSELECT COUNT(*) せずに正しいレコードの数を数えたい(が、そんなに都合の良いことはなかった)

 

TL;DR

  • innochecksumを使って強引に数えてみた
  • こんなことをするくらいならおとなしくCOUNT(*) した方がマシ

SHOW TABLE STATUS や information_schema.tables は統計情報ベースなので正確な値ではない、でも COUNT(*) はしたくない、という時。

mysql> SHOW TABLE STATUS LIKE 't1'\G
*************************** 1. row ***************************
           Name: t1
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 94295380
 Avg_row_length: 37
    Data_length: 3515875328
Max_data_length: 0
   Index_length: 3868196864
      Data_free: 6291456
 Auto_increment: NULL
    Create_time: 2022-05-23 21:43:56
    Update_time: 2022-05-23 22:43:29
     Check_time: NULL
      Collation: utf8mb4_bin
       Checksum: NULL
 Create_options:
        Comment:
1 row …
[さらに読む]
3087 件中 221 - 230 件を表示
« 前の 10 件 | 次の 10 件 »