আপনি যদি LIMITপারফরম্যান্স উন্নত করতে সুবিধা নিতে চান তবে আপনার প্রয়োজন
- আপনি যে তথ্য পুনরুদ্ধার করছেন তা বুঝুন
- যথাযথ কলামগুলির যথাযথ সূচীকরণ
- ক্যোয়ারী রিফ্যাকচারিংয়ের জন্য দায় গ্রহণ করুন
LIMITআগে ব্যবহারJOIN
আপনি যদি সেগুলি অর্কেস্টেট করতে পারেন তবে এই নীতিগুলি অনেক বেশি যেতে পারে।
এই ইউটিউব ভিডিওটি দেখে আমি এই ধারণাগুলি শিখেছি (ফরাসী উচ্চারণের মাধ্যমে সাবধানে শুনুন)
কয়েকটি ধারণাগুলি থেকে শীর্ষ 40 টি নিবন্ধ পাওয়ার বিষয়ে খুব শক্ত স্ট্যাকওভারফ্লো প্রশ্নের উত্তর দেওয়ার জন্য আমি এই ধারণাগুলি ব্যবহার করেছি: 12 ই মে, 2011: যোগদানের টেবিল থেকে একটি একক সারি আনতে হবে ।
এই প্রশ্নের উত্তরে (16 ই মে, 2011) , আমি নিম্নলিখিত কোয়েরিটি লিখেছি এবং এটির পুরোপুরি পরীক্ষা করেছি:
SELECT
AAA.author_id,
AAA.date_created,
IFNULL(BBB.title,'<NO_TITLE>') title,
IFNULL(CCC.filename,'<NO-IMAGE>') filename,
IFNULL(CCC.date_added,'<NO-IMAGE-DATE>') image_date
FROM
(
SELECT
AA.id,
AA.date_added,
BB.author_id,
BB.date_created
FROM
(
SELECT
A.id,IFNULL(MAX(B.date_added),'1900-01-01 00:00:00') date_added
FROM (SELECT id FROM articles ORDER BY date_created DESC LIMIT 40) A
LEFT JOIN article_images B ON A.id = B.article_id
GROUP BY A.id
) AA
INNER JOIN articles BB USING (id)
) AAA
LEFT JOIN article_contents BBB ON AAA.id=BBB.article_id
LEFT JOIN article_images CCC
ON (AAA.id=CCC.article_id AND AAA.date_added=CCC.date_added)
ORDER BY AAA.date_created DESC;
দয়া করে কোয়েরিতে লাইনটি লক্ষ্য করুন LIMIT
FROM (SELECT id FROM articles ORDER BY date_created DESC LIMIT 40) A
এই subquery তিন স্তর গভীর সমাহিত করা হয়। এটি আমাকে শেষ 40 টি নিবন্ধ ব্যবহার করে অনুমতি দিয়েছে LIMIT। তারপরে, আমি পরে প্রয়োজনীয় জিনগুলি সম্পাদন করেছি।
পাঠ শিখেছি
- এরকম
LIMITsubqueries ভিতরে সবসময় ইন্ডেক্সে cardinality, ডাটা বিষয়বস্তু, এবং থেকে ফলাফল সেট আকারের কারণ উত্তর হতে পারে LIMIT। আপনার যদি আপনার সমস্ত "পর পরের হাঁস" থাকে (আপনার প্রশ্নের জন্য চারটি নীতি মনে রাখবেন), আপনি আশ্চর্যরকম ভাল ফলাফল পেতে পারেন।
LIMITকেবল কীগুলি সংগ্রহ করার মাধ্যমে আপনার প্রশ্নগুলি যথাসম্ভব সরল করুন ।
LIMITদক্ষতার উন্নতি হয় এমন