کوئریهای کند باعث ضرر مالی، شکست در مصاحبههای شغلی و رد شدن در بررسیهای کد (Code Review) میشوند. این دوره ۳۰۰ سوال تمرینی را ارائه میدهد که بر اساس مهارتهای عملکرد SQL طراحی شدهاند؛ مهارتهایی که در نقشهای مهندسی ارشد و حوادث محیط Production بسیار حیاتی هستند.
شش آزمون این دوره، تمام لایههای بهینهسازی را از مفاهیم پایه تا تحلیل تخصصی پلنها پوشش میدهند:
آزمون ۱ نحوه اجرای واقعی کوئریها توسط دیتابیس را بررسی میکند: Parser، Planner و موتور اجرا. شما مدل هزینه (Cost Model)، تاثیر آمارها در انتخاب پلن و دلیل تغییر زمان اجرای یک کوئری از ۲ میلیثانیه به ۲ دقیقه را درک خواهید کرد.
آزمون ۲ به بررسی ایندکسها میپردازد: B-tree، GIN، Partial، Composite، Expression و Covering Indexes. یاد میگیرید کدام نوع ایندکس برای هر الگوی کوئری مناسب است و چه اشتباهاتی باعث نادیده گرفته شدن ایندکسها توسط Planner میشود.
آزمون ۳ بهینهسازی Joinها را پوشش میدهد: Nested loop، Hash join، Merge join، Semi-joins، Anti-joins، LATERAL و ترتیب اتصال جداول متعدد. شما خواهید آموخت هر استراتژی چه زمانی برنده است و چگونه مواردی که باعث فاجعه Fan-out در محیط عملیاتی میشوند را شناسایی کنید.
آزمون ۴ تجمیعها، Window Functions و الگوهای Subquery را بررسی میکند: مقایسه HashAggregate در مقابل GroupAggregate، شمارش DISTINCT در مقیاس بالا، ROW_NUMBER در مقابل DISTINCT ON، بازنویسی Subqueryهای مرتبط و رفتار CTE Inlining در PostgreSQL 12 و نسخههای جدیدتر.
آزمون ۵ ضد-الگوها و بازنویسیها را پوشش میدهد: LIKE با Wildcard ابتدایی، تبدیلهای نوع داده ضمنی، توابع روی ستونهای ایندکس شده، صفحهبندی OFFSET، اشتباهات مقایسه NULL، عملکرد DELETEهای حجیم و کوئریهای N+1. هر سوال یک کوئری کند واقعی را ارائه داده و از شما میخواهد علت و راه حل را بیابید.
آزمون ۶ خواندن و تفسیر خروجی EXPLAIN ANALYZE است. یاد میگیرید گرههای پلن را از پایین به بالا بخوانید، حجم کار کل گره را از حلقهها و زمان واقعی محاسبه کنید، نشت دادهها به دیسک (Spills to disk) را تشخیص دهید، خطاهای تعداد ردیفها را شناسایی کرده و تفاوت انتظار برای Lock را از گلوگاههای I/O تشخیص دهید.
تمامی سوالات سناریو-محور هستند: یک موقعیت واقعی در محیط Production، چهار پاسخ احتمالی و یک توضیح مفصل که فراتر از پاسخ صحیح است تا دلیل نادرست بودن سایر گزینهها را شرح دهد.
Tech Coach
مهندس و مربی
نمایش نظرات