আমার কাছে 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 ঘন্টা অপেক্ষা করার পরে অবশেষে আমি এই পদ্ধতির ত্যাগ করি।
এই সমস্যার কোনও কার্যক্ষম সমাধান আছে কি?
আপডেট : সারণীটি আপডেট হওয়া বা sertedোকানো বা মোছার সম্ভাবনা নেই। কলামে সূচী তৈরির text
কারণ হ'ল এই ধরণের স্ক্যাল কোয়েরিটি প্রায়শই সম্পাদিত হত:
SELECT page_id FROM text_page WHERE text = ?
আপডেট : আমি টেবিলটি বিভাজন করে সমস্যার সমাধান করেছি।
টেবিলটি কলামে 40 টুকরা হয়ে বিভক্ত text
। তারপরে টেবিলে সূচক তৈরি করতে প্রায় 1 ঘন্টা সময় লাগে।
দেখে মনে হচ্ছে টেবিলের আকারটি খুব বড় হয়ে গেলে মাইএসকিউএল সূচকটি তৈরি করা খুব ধীর হয়ে যায়। এবং বিভাজন টেবিলকে ছোট ছোট ট্রাঙ্কগুলিতে হ্রাস করে।
CREATE INDEX
স্টেটমেন্ট ব্যবহার করে কী ভুল ?