utf8mb4が有効なmariadb(バージョン10.2.10)テーブルがあります。行を一意に識別するvarchar(120)列のjobIDがあります。現在、私は60文字の長さのjobIDを使用しています(将来的にはオプションを増やすことができます)。だから、私はそれを主キーにしました。mariadb varchar 120文字主キー
今、60Kレコードあります。だから、detail given hereを使ってdatafile + indexfileのサイズを調べると、datafileのサイズはindexfileとほぼ同じになっています。したがって、私が宣言した主キーのために、データファイルが上昇しているので、インデックスファイルは1:1に上昇しています。
したがって、私は、hereのように整数の自動インクリメントプライマリキーを追加し、jobIDカラムを一意のキーにすることを考え始めました。しかし、インデックスファイルがデータファイルとともに1:1になるという問題と、テーブルのサイズが増加するにつれてテーブルへの新しい挿入のパフォーマンスの低下(テーブルには今後2千万レコードがある)が私を混乱させました。適切なアプローチは何でしょうか?前もって感謝します。
私の現在のテーブルを作成します。
CREATE TABLE jobsTable (
`jobId` varchar(100) NOT NULL,
`status` varchar(15) NOT NULL,
`addedTime` varchar(13) NOT NULL,
PRIMARY KEY(`jobId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
こんにちは@ジェイムス、私は作成テーブルを追加しました。私は主キーのみを定義しています。一意のキーは定義されていません。応答していただきありがとうございます。 – bgth
奇妙な。 "Index_length"は0(または16 KB)のままにする必要があります。 'SHOW TABLE STATUS LIKE 'jobsTable'; ' –
こんにちはRick Jamesさん、ありがとうございます。私は再びチェックして戻ってきます。 – bgth