ฉันมีตารางที่มี 1.4 พันล้านบันทึก โครงสร้างของตารางมีดังนี้:
CREATE TABLE text_page (
    text VARCHAR(255),
    page_id INT UNSIGNED
) ENGINE=MYISAM DEFAULT CHARSET=ascii
textความต้องการคือการสร้างดัชนีมากกว่าคอลัมน์
ขนาดโต๊ะประมาณ 34G
ฉันพยายามสร้างดัชนีโดยคำสั่งต่อไปนี้:
ALTER TABLE text_page ADD KEY ix_text (text)
หลังจากรอ 10 ชั่วโมงในที่สุดฉันก็ยอมแพ้วิธีนี้
มีวิธีแก้ปัญหาที่ใช้การได้กับปัญหานี้หรือไม่?
UPDATE : ตารางไม่น่าจะถูกปรับปรุงหรือแทรกหรือลบ สาเหตุที่สร้างดัชนีในคอลัมน์textเป็นเพราะแบบสอบถามชนิดนี้จะถูกเรียกใช้งานบ่อย:
SELECT page_id FROM text_page WHERE text = ?
UPDATE : ฉันได้แก้ไขปัญหาด้วยการแบ่งตาราง
ตารางจะแบ่งออกเป็น 40 textชิ้นในคอลัมน์ จากนั้นการสร้างดัชนีบนตารางจะใช้เวลาประมาณ 1 ชั่วโมงจึงจะเสร็จสมบูรณ์
ดูเหมือนว่าการสร้างดัชนี MySQL ช้ามากเมื่อขนาดของตารางใหญ่มาก และการแบ่งพาร์ติชั่นช่วยลดตารางให้เล็กลง
CREATE INDEXคำสั่งปกติ?