আমি একটি ডাটাবেসে বেশ কয়েকটি নকল পেয়েছি যা আমি পরিদর্শন করতে চাই, তাই আমি যেগুলি সদলিপি ছিল তা দেখতে আমি কী করেছি:
SELECT relevant_field
FROM some_table
GROUP BY relevant_field
HAVING COUNT(*) > 1
এইভাবে, আমি প্রাসঙ্গিক_ফিল্ডে একাধিক বার সংঘটিত হওয়ার সাথে সমস্ত সারি পাব। এই ক্যোয়ারীটি কার্যকর করতে মিলিসেকেন্ড নেয়।
এখন, আমি প্রতিলিপিগুলির প্রত্যেকটি পরীক্ষা করতে চেয়েছিলাম, তাই আমি ভেবেছিলাম যে আমি উপরের ক্যোয়ারীতে প্রাসঙ্গিক_ফিল্ডের সাথে কিছু_ টেবিলের মধ্যে প্রতিটি সারি নির্বাচন করতে পারি, তাই আমি এটি পছন্দ করেছি:
SELECT *
FROM some_table
WHERE relevant_field IN
(
SELECT relevant_field
FROM some_table
GROUP BY relevant_field
HAVING COUNT(*) > 1
)
এটি কোনও কারণে অতিমাত্রায় ধীর হয়ে উঠেছে (এটি কয়েক মিনিট সময় নেয়)। এটিকে ধীর করে দেওয়ার জন্য এখানে ঠিক কী চলছে? প্রাসঙ্গিক_ফিল্ড সূচকযুক্ত।
শেষ পর্যন্ত আমি প্রথম ক্যোয়ারী থেকে একটি "টেম্প_ভিউ" তৈরি করার চেষ্টা করেছি (SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1)
এবং তারপরে আমার দ্বিতীয় ক্যোয়ারীটি এর পরিবর্তে তৈরি করার চেষ্টা করেছি:
SELECT *
FROM some_table
WHERE relevant_field IN
(
SELECT relevant_field
FROM temp_view
)
এবং এটি ঠিক কাজ করে। মাইএসকিউএল কিছু মিলিসেকেন্ডে এটি করে।
এখানে যে কোনও এসকিউএল বিশেষজ্ঞ কী হতে চলেছে তা ব্যাখ্যা করতে পারেন?