タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

DBとmysqlに関するkatsushのブックマーク (2)

  • 第97回 JOIN_ORDERを使ってJOINの順番を決める | gihyo.jp

    MySQL 5.7とそれ以前では、テーブルの結合を実施する際に、INNER JOINの場合はSTRAIGHT_JOINを利用し結合することで、テーブルのなかで先に読み取りを行うテーブルを決めることができました。最新バージョンのMySQL 8.0からは、Join-Order オプティマイザヒント句を用いてJOINする順番を決めることができるようになりました。 今回は、従来のSTRAIGHT_JOINJoin-Order オプティマイザヒント句の使い方を確認していきたいとおもいます。なお、使用しているMySQLは8.0.15,OSはCentOS7を利用しています。 STRAIGHT_JOIN STRAIGHT_JOINは、JOINを行う際に対象のテーブルの駆動表を固定したいときに使われる構文です。STRAIGHT_JOINを用いてJOINを行うと、先に出てきたテーブルを駆動表として扱い、IN

    第97回 JOIN_ORDERを使ってJOINの順番を決める | gihyo.jp
    katsush
    katsush 2022/01/23
    “STRAIGHT_JOINは指定した順番を強制させるものでしたが,JOIN_ORDER,JOIN_PREFIX,JOIN_SUFFIXは順番を強制しないので,オプティマイザがコストが高いと判断した場合は選択されない可能性があります。”
  • プライマリーキー(primary key)はシーケンシャルな値で良いと思うよ - 角待ちは対空

    zenn.dev を読んでの感想です。「シーケンスナンバーをPKにする」以外の項目については言及しませんが、言及しないことは正当性や妥当性を保証していることにはならないです。 InnoDB(MySQL)を想定してます。が、原理は割と一般的なので他のDBでも適用できることが多いと思います。 追記:一般的とは分散でないような"普通の"RDBMSを想定してましたが、分散システム(distributed systemないしreplicated system)のような場合では話が違います。 なぜシーケンシャルな値がよいか 端的にいうと書き込み操作時にバッファープール(baffuer pool)に読み混む必要のあるページが少なくて済むからです。その結果書き込み操作時にバッファープールにページが存在する可能性が高くレイテンシー的に有利になる可能性が高いです。 バッファープール、ページ、btreeなど具体

    プライマリーキー(primary key)はシーケンシャルな値で良いと思うよ - 角待ちは対空
  • 1