私は現在、MYSQLデータベースに保存されているデータの変更を含むプロジェクトに取り組んでいます。作業中のテーブルにはキーがないため、次のコマンドでキーを追加します。
ALTER TABLE deCoupledData ADD COLUMN MY_KEY INT NOT NULL AUTO_INCREMENT KEY
選択したフィールドに従ってレコードをグループ化したいので、MY_KEYと選択したフィールドで構成されるテーブルdeCoupledDataのインデックスを作成しようとしています。たとえば、フィールドSTATED_FおよびNOT_STATED_Fを操作する場合は、次のように入力します。
ALTER TABLE deCoupledData ADD INDEX (MY_KEY, STATED_F, NOT_STATED_F)
本当の問題は、私が通常使用するフィールドが16を超えることです。そのため、MYSQLは16フィールドを超えるスーパーキーを許可しません。結論として、これを行う別の方法はありますか?(どういうわけか)MYSQLを作成して、目的のスーパーキー(クラスタリングなど)に従ってレコードを並べ替えることはできますか?私は本当にスクリプトを高速化する必要があります。主なオーバーヘッドは、各グループにディスクの同じページに保存されていないレコードが含まれている可能性があることです。PCはレコードを取得するためにランダムなI/Oを開始すると想定しています。
お時間をいただきありがとうございます。Nick Katsipoulakis
CREATE TABLE deCoupledData (
AA double NOT NULL DEFAULT '0',
STATED_F double DEFAULT NULL,
NOT_STATED_F double DEFAULT NULL,
MIN_VALUES varchar(128) NOT NULL DEFAULT '-1,-1',
MY_KEY int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (MY_KEY),
KEY AA (AA) )
ENGINE=InnoDB AUTO_INCREMENT=74358 DEFAULT CHARSET=latin1