DB

DB

[SQL Server] パーティション化したテーブルのidのユニーク性を保障する方法に関する検討

課題「パーティションテーブルではテーブル内でidがユニークであることを保障できない」パーティションを導入したテーブルはパーティションキーとidの複合キーが主キーになるそのため、原理上、テーブル内でidがユニークであることを保障できないと言う...
Amazon Aurora

[TiDB] TiDBのdumplingでAuroraMySQLのDDLをダンプして、TiDB Cloud Consoleからインポートするとgeometory型でバリデーションエラーが出る

やっていたこと以下の記事を参考にAuroraMySQLのデータをTiDBに積み直していました。前段としてAuroraMySQLのDDLをTiDBにインポートする必要があったので、dumplingというTiDBのツールでAuroraMySQL...
Amazon Aurora

[TiDB v8.1.2] datetime型のカラムとデフォルト値の精度が異なる場合の挙動がTiDBとMySQLで異なる。

環境情報MySQLの環境: AuroraMySQL (MySQL 8系)TiDB Cloud: v8.1.2MySQLの挙動「datetime型のカラムとデフォルト値のNOW()メソッドの精度が合っていなくてもエラーにならない」MySQLに...
Amazon Aurora

TiDB CloudのコンソールからDDLをインポートした際に「The table ‘Hoge’ has some problems with the schema file: [ddl:1067]Invalid default value for ‘created_at'” }. Please check the content of the schema file.」というエラーが出た

環境実施日: 2025/03/18 TiDB: TiDB Cloud Dedicated v8.1.2Mac OS: Sequoia 15.3.2 (24D81)tiup: 1.16.1 v1.16.1-nightly-20go: go1....
DB

7億行のテーブルにパーティション導入することでdelete文の速度が4.7倍高速化した

はじめに今回は、7億行ものデータ行を持つテーブルの日付カラムにパーティションを導入することで、delete文が高速になるかどうかを検証しました。また、検証対象テーブルのファイルグループを、デフォルトでデータが格納されるPRIMARY以外にす...
DB

テーブルパーティションの性能改善事例集

事例: 4億行のテーブルに対してselectクエリ実行した場合4億行で比較したところ、7秒かかるクエリが1秒まで短縮された事例: 20億行のテーブルに対して、selectを実行した場合20億行のテーブルに対して、selectを実行した場合、...
DB

JOOQのbulk update, batch update, for文でのupdateはどれくらいの速度差があるのか?

目次はじめにjOOQとは1万件のレコードをjOOQでアップデートする際の性能おわりに1. はじめにみなさんDBのデータ更新をする際になんとなくupdateしてませんか?実は数万件単位のupdateをする際に、愚直にupdateするのとbul...
DB

関数従属について

関数従属概要…ある属性xの値が決めると他の属性yの値が一意に決まる関係のことを関数従属と呼ぶ。属性xのことを独立属性(決定項)といい、属性yを従属属性(従属項)という。関数従属に着目することで、正規化することが重要。表記x -> y (xな...
Amazon Aurora

[Aurora DSQL] Aurora DSQLでサポートしていないPostgreSQLの機能

Amazon Aurora DSQLというポスグレ互換のNewSQLが2024年末に発表されたが、サポートされていないポスグレの機能もあるとのこと。サポートしていないオブジェクトまずサポートしていないオブジェクトは以下の通り。Databas...
DB

[SQL Server] 行ロックを取りすぎるとテーブルロックに変わる

SQL Serverにおいて行ロックを取得しすぎるとテーブルロックに変わることがあります。このロックエスカレーションという挙動と注意点について解説します。