Tôi có một cái bàn
| cơ sở_schedule_line_items | TẠO BẢNG
base_schedule_line_items
(
id
int (10) không dấu KHÔNG NULL AUTO_INCREMENT,
installment
int (10) không dấu KHÔNG NULL,
on_date
ngày KHÔNG NULL,
actual_date
ngày DEFAULT NULL,
payment_type
int (11) KHÔNG NULL,
scheduled_principal_outstanding
thập phân (65,0) KHÔNG NULL,
scheduled_principal_due
thập phân (65,0) KHÔNG NULL,
scheduled_interest_outstanding
thập phân (65,0) KHÔNG NULL,
scheduled_interest_due
thập phân (65,0) KHÔNG NULL,
currency
int (11) KHÔNG NULL,
updated_at
datetime KHÔNG NULL DEFAULT '2013-01-06 14:29:16',
created_at
datetime KHÔNG NULL DEFAULT ' 2013-01-06 14:29:16 ',
loan_base_schedule_id
int (10) không dấu KHÔNG NULL,
lending_id
int (10) không dấu KHÔNG 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
),
KHÓAindex_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 = 30.410.126 DEFAULT CHARSET = utf8 |
Bây giờ bảng này có 30 triệu bản ghi trong đó, tôi cần thêm hai chỉ mục nữa và nó giống như phải mất nhiều năm để thêm nó.
thay đổi bảng base_schedule_line_items thêm chỉ mục index_bslt_sla (lên lịch_principal_due, fact_date, loan_id);
thay đổi bảng base_schedule_line_items thêm index index_bslt_ssla (lên lịch_principal_due, lên lịch_interest_due, loan_id, fact_date);
Tôi đã sử dụng truy vấn được đề cập dưới đây để tìm ra kích thước của bảng
CHỌN tên_bảng AS "Bảng", vòng (((data_length + index_length) / 1024/1024), 2) "Kích thước tính bằng MB" TỪ information_schema.TABLES WHERE table_schema = "my_database_name";
Kết quả được đưa ra là
cơ sở_schedule_line_items | 20111.00
Tôi đã sử dụng điều này chỉ để tính chiều dài dữ liệu và bỏ qua chiều dài chỉ mục
CHỌN tên_bảng AS "Bảng", vòng (((data_length) / 1024/1024), 2) "Kích thước tính bằng MB" TỪ information_schema.TABLES WHERE table_schema = "my_database_name";
và kết quả là
cơ sở_schedule_line_items | 9497,00
Các chỉ số
Index_bslt_actualdate KEY (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)
đã được tôi thêm vào, nhưng tôi không chắc chắn hoặc mục đích nào khác được thêm vào. Đây là ứng dụng khá lớn. Bây giờ tôi cần thêm hai chỉ số được đề cập ở trên vì chúng giúp tôi trích xuất một báo cáo bằng cách sử dụng một câu lệnh chọn và tôi thấy rất khó để thêm chúng. Mọi sự trợ giúp sẽ rất được trân trọng