আমি প্রায় 150,000 সারি ডেটা সহ একটি বিশাল মাইএসকিউএল টেবিল পেয়েছি। বর্তমানে, যখন আমি চেষ্টা করে চালাচ্ছি
SELECT * FROM table WHERE id = '1';
আইডি ক্ষেত্রটি প্রাথমিক সূচক হিসাবে কোডটি সূক্ষ্মভাবে চলে। তবে, প্রকল্পটির সাম্প্রতিক উন্নয়নের জন্য, আমাকে অন্য ক্ষেত্রের মাধ্যমে ডাটাবেসটি অনুসন্ধান করতে হবে। উদাহরণ স্বরূপ:
SELECT * FROM table WHERE product_id = '1';
এই ক্ষেত্রটি আগে সূচিযুক্ত ছিল না; যাইহোক, আমি একটি যুক্ত করেছি, সুতরাং মাইএসকিএল এখন ক্ষেত্রকে সূচক করে তোলে, তবে যখন আমি উপরের ক্যোয়ারীটি চালানোর চেষ্টা করি তখন এটি খুব ধীরে ধীরে চলে। একটি স্পষ্ট জিজ্ঞাসা প্রকাশ করে যে আমি যখন ইতোমধ্যে একটি যুক্ত করেছি তখন product_id ক্ষেত্রের জন্য কোনও সূচক নেই এবং ফলস্বরূপ কোয়েরিতে কোনও একক সারিতে ফিরে আসতে 20 মিনিট থেকে 30 মিনিটের সময় পর্যন্ত যে কোনও জায়গায় নেওয়া হয়।
আমার পূর্ণ বিবরণ ফলাফলগুলি:
| id | select_type | table | type | possible_keys| key | key_len | ref | rows | Extra |
+----+-------------+-------+------+--------------+------+---------+------+-------+------------------+
| 1 | SIMPLE | table | ALL | NULL | NULL | NULL | NULL |157211 | Using where |
+----+-------------+-------+------+--------------+------+---------+------+-------+------------------+
এটি উল্লেখ করা সহায়ক হতে পারে যে আমি সবেমাত্র একবার দেখেছি এবং আইডি ফিল্ড INT হিসাবে সংরক্ষণ করা হয়েছে যেখানে PRODUCT_ID ক্ষেত্রটি VARCHAR হিসাবে সংরক্ষণ করা হয়েছে। এটি কি সমস্যার উত্স হতে পারে?
EXPLAIN
ফলাফল পোস্ট করতে পারেন ? আপনি কি নিশ্চিত যে এটি কোনও সূচক নেই? বা সেখানে সূচকটি রয়েছে, তবে মাইএসকিউএল এটি ব্যবহার না করে বেছে নিচ্ছে?