2.1 ปราบ N+1 Query และการใช้ Eager Loading อย่างถูกวิธี
วิดีโอบทเรียนความยาว 35 นาที (1080p HD Streaming)
บทที่ 2: Eloquent Performance & Database Indexing
2.1 ปราบ N+1 Query และการใช้ Eager Loading อย่างถูกวิธี
เทคนิคการใช้ with(), withCount(), และ whereHas() เพื่อลดเวลา Response Time จาก 1.2 วินาที เหลือเพียง 45 มิลลิวินาที
code_snippet.php
// Before (ช้ามาก: เกิด N+1 Queries)
$softwares = Software::all();
foreach ($softwares as $item) {
echo $item->category->name;
}
// After (โหลดเร็วขึ้น 20 เท่า)
$softwares = Software::with(['category', 'currentVersion'])
->where('is_published', true)
->select(['id', 'category_id', 'title', 'price', 'slug'])
->paginate(12);
Language: PHP
กดปุ่มคัดลอกเพื่อนำโค้ดไปวางใน IDE ของคุณได้ทันที
แบบทดสอบท้ายบทเรียน & เก็บคะแนน (Quiz Score)
ตอบถูกรับข้อละ 10 คะแนน บันทึกเข้า Profile อัตโนมัติ
คะแนนสอบสะสม: 0 แต้ม
ข้อ 1
ฟังก์ชันใดใน Laravel Eloquent ใช้สำหรับแก้ปัญหา N+1 Query โดยการทำ Eager Loading ความสัมพันธ์ล่วงหน้า?
+10 แต้ม
ข้อ 2
หากต้องการนับจำนวนความสัมพันธ์ เช่น จำนวนดาวน์โหลด โดยไม่ต้องการดึงข้อมูลทั้งหมด ควรใช้เมธอดใด?
+10 แต้ม
ชุมชนถาม-ตอบประจำบทเรียน (1)
เข้าสู่ระบบเพื่อร่วมตั้งคำถาม
กรุณาเข้าสู่ระบบ หรือสมัครสมาชิกก่อนเพื่อโพสต์คำถามในบทเรียนนี้
บทนี้เข้าใจง่ายมากครับ ลองเอาไปแก้ระบบโรงเรียนจากเดิมโหลดหน้าแรก 2 วินาที ตอนนี้เหลือไม่ถึง 80ms แล้วครับ!
สารบัญบทเรียนทั้งหมด
ความคืบหน้า 0%
เรียนจบแล้ว 0 / 3 บทเรียน
ยังไม่เริ่ม
เรียนอีก 3 บท เพื่อปลดล็อคใบประกาศนียบัตร