テーブルがあります
| base_schedule_line_items | CREATE TABLE
base_schedule_line_items(
idint(10)unsigned NOT NULL AUTO_INCREMENT、
installmentint(10)unsigned NOT NULL、
on_datedate NOT NULL、
actual_datedate DEFAULT NULL、
payment_typeint(11)NOT NULL、
scheduled_principal_outstandingdecimal(65,0)NOT NULL、
scheduled_principal_duedecimal(65,0) NOT NULL、
scheduled_interest_outstandingdecimal(65,0)NOT NULL、
scheduled_interest_duedecimal(65,0)NOT NULL、
currencyint(11)NOT NULL、
updated_atdatetime NOT NULL DEFAULT '2013-01-06 14:29:16'、
created_atdatetime NOT NULL DEFAULT ' 2013-01-06 14:29:16 '、
loan_base_schedule_idint(10)unsigned NOT NULL、
lending_idint(10)unsigned NOT NULL、
rescheduletinyint(1)DEFAULT' 0 '、
PRIMARY KEY(id)、
KEYindex_base_schedule_line_items_loan_base_schedule(loan_base_schedule_id)、KEYindex_bslt_spd(scheduled_principal_due)、
キーindex_bslt_lending(lending_id)、
KEYindex_bslt_actualdate(actual_date)、
KEYindex_bslt_spsila(loan_base_schedule_id、scheduled_principal_due、scheduled_interest_due、actual_date)、
KEYindex_bslt_ondate(on_date)、
KEYindex_bslt_oa(on_date、actual_date)、
KEYindex_bslt_ol(on_date、loan_base_schedule_id)、
KEYindex_bslt_oli(on_date、lending_id)
)ENGINE = InnoDBのAUTO_INCREMENT = 30410126 DEFAULT CHARSET = utf8 |
このテーブルには3,000万件のレコードがあります。これにさらに2つのインデックスを追加する必要があり、その追加には数年かかります。
テーブルbase_schedule_line_itemsを変更してインデックスindex_bslt_sla(scheduled_principal_due、actual_date、lending_id)を追加します。
テーブルbase_schedule_line_itemsの変更、インデックスの追加index_bslt_ssla(scheduled_principal_due、scheduled_interest_due、lending_id、actual_date);
以下のクエリを使用して、テーブルのサイズを確認しました
SELECT table_name AS "Tables"、round(((data_length + index_length)/ 1024/1024)、2) "サイズin MB" FROM information_schema.TABLES WHERE table_schema = "my_database_name";
結果は
base_schedule_line_items | 20111.00
私はこれを単にデータ長を計算し、インデックスの長さを省いた
SELECT table_name AS "Tables"、round(((data_length)/ 1024/1024)、2) "サイズin MB" FROM information_schema.TABLES WHERE table_schema = "my_database_name";
結果は
base_schedule_line_items | 9497.00
インデックス
KEYのindex_bslt_actualdate(actual_date)、
KEY index_bslt_spsila(loan_base_schedule_id、scheduled_principal_due、scheduled_interest_due、actual_date)、
KEY index_bslt_ondate(on_date)、
KEY index_bslt_oa(on_date、actual_date)、
KEY index_bslt_ol(on_date、loan_base_schedule_id)、
KEY index_bslt_oli(on_date、lending_id)
私によって追加されましたが、私は他のインデックスが追加されたのかどうか、またはどのような目的であるかを確信していません。これはかなり大きなアプリケーションです。選択ステートメントを使用してレポートを抽出するのに役立つため、上記の2つのインデックスを追加する必要がありますが、追加するのは非常に困難です。どんな助けも大歓迎です