テーブルがあります
| base_schedule_line_items | CREATE TABLE
base_schedule_line_items
(
id
int(10)unsigned NOT NULL AUTO_INCREMENT、
installment
int(10)unsigned NOT NULL、
on_date
date NOT NULL、
actual_date
date DEFAULT NULL、
payment_type
int(11)NOT NULL、
scheduled_principal_outstanding
decimal(65,0)NOT NULL、
scheduled_principal_due
decimal(65,0) NOT NULL、
scheduled_interest_outstanding
decimal(65,0)NOT NULL、
scheduled_interest_due
decimal(65,0)NOT NULL、
currency
int(11)NOT NULL、
updated_at
datetime NOT NULL DEFAULT '2013-01-06 14:29:16'、
created_at
datetime NOT NULL DEFAULT ' 2013-01-06 14:29:16 '、
loan_base_schedule_id
int(10)unsigned NOT NULL、
lending_id
int(10)unsigned NOT NULL、
reschedule
tinyint(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つのインデックスを追加する必要がありますが、追加するのは非常に困難です。どんな助けも大歓迎です