をドロップする推定時間は、我々は次のように定義されたかなり最適化されていないテーブルを持っている:MySQLの - インデックス
CREATE TABLE `Usage` (
`TxnDate` varchar(30) DEFAULT NULL,
`TxnID` decimal(13,2) NOT NULL,
`UserID2015` varchar(20) DEFAULT NULL,
`UserRMN` decimal(13,0) DEFAULT NULL,
`CustomerNo` decimal(13,0) DEFAULT NULL,
`OperatorName` varchar(50) DEFAULT NULL,
`AggregatorName` varchar(30) DEFAULT NULL,
`TransAmount` decimal(10,2) DEFAULT NULL,
`MMPLTxnID` decimal(13,0) DEFAULT NULL,
`ProductType` varchar(30) DEFAULT NULL,
`YearMonthRMN` varchar(50) DEFAULT NULL,
PRIMARY KEY (`TxnID`),
UNIQUE KEY `TxnID` (`TxnID`) USING BTREE,
KEY `TxnDate` (`TxnDate`),
KEY `OperatorName` (`OperatorName`),
KEY `AggregatorName` (`AggregatorName`),
KEY `MMPLTxnID` (`MMPLTxnID`),
KEY `ProductType` (`ProductType`),
KEY `UserRMN` (`UserRMN`),
KEY `YearMonthRMN` (`YearMonthRMN`) USING BTREE,
KEY `CustomerNo` (`CustomerNo`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
テーブルはabotu 170Mレコードを持っています。
プライマリキーを削除し、代わりに自動番号プライマリキーを追加します。これまでのところ、指数の低下は2時間を要した。
インデックスを削除するのに時間がかかりすぎる理由は何ですか?
インデックスを削除する時間はどのように見積もりますか?
オートナンバーを追加すると、テーブルをソートする時間を見積もる必要がありますか?これは新しいオートナンバーインデックスでは必要ありませんか?
これはAmazon RDSにあるので、少なくともインデックスサイズのログ領域にメインメモリをプロビジョニングできますか? – jdog
インデックスの作成は、通常、メモリではなくI/Oパフォーマンスによって制限されます。 –
これは大丈夫ですが、おおよそ次のように計算できます。メモリにインデックス付きの列をソートするにはxGBが必要で、IO制約がある列を読み取るのにx時間が必要ですか?だから私は一時的に利用可能な最大のIOと十分なメモリを割り当てることができるので、ディスクへのスワッピングでソーティングは起こりません。 – jdog