
Performance Optimization
การปรับแต่งคิวรี, ปัญหา N+1, eager loading, lazy loading, กลยุทธ์การแคช, การทำดัชนีฐานข้อมูล, เครื่องมือ profiling
1ปัญหา N+1 ใน Laravel คืออะไร?
ปัญหา N+1 ใน Laravel คืออะไร?
คำตอบ
ปัญหา N+1 เกิดขึ้นเมื่อ Eloquent รันคิวรีหนึ่งเพื่อดึงคอลเลกชัน แล้วรันคิวรีเพิ่มเติมต่อหนึ่งรายการเพื่อโหลดความสัมพันธ์ สิ่งนี้ทำให้การเข้าถึงฐานข้อมูลเพิ่มขึ้นเป็นทวีคูณและลดประสิทธิภาพลงอย่างมากเมื่อข้อมูลมีจำนวนมาก การใช้ eager loading ด้วย with() จะโหลดความสัมพันธ์ทั้งหมดในคิวรีเพิ่มเติมเพียงครั้งเดียวแทนที่จะเป็น N คิวรี
2ควรใช้เมธอดใดเพื่อแก้ปัญหา N+1 เมื่อโหลดความสัมพันธ์?
ควรใช้เมธอดใดเพื่อแก้ปัญหา N+1 เมื่อโหลดความสัมพันธ์?
คำตอบ
เมธอด with() ทำ eager loading ซึ่งโหลดความสัมพันธ์ในคิวรีเพิ่มเติมเพียงครั้งเดียว แทนที่จะรันคิวรีหนึ่งต่อหนึ่งโมเดลเมื่อเข้าถึงความสัมพันธ์ ความสัมพันธ์ทั้งหมดจะถูกโหลดไว้ล่วงหน้า สิ่งนี้ลดจำนวนคิวรี SQL ลงอย่างมากและเพิ่มประสิทธิภาพ
3ความแตกต่างระหว่าง eager loading และ lazy loading คืออะไร?
ความแตกต่างระหว่าง eager loading และ lazy loading คืออะไร?
คำตอบ
Eager loading โหลดความสัมพันธ์ทันทีพร้อมกับคิวรีหลักผ่าน with() ในขณะที่ lazy loading โหลดความสัมพันธ์ตามต้องการเมื่อเข้าถึงครั้งแรก lazy loading อาจทำให้เกิดปัญหา N+1 หากเข้าถึงความสัมพันธ์ในลูป แนะนำให้ใช้ eager loading เมื่อจะมีการใช้ความสัมพันธ์เพื่อหลีกเลี่ยงคิวรีหลายครั้ง
Cache::remember() ใน Laravel มีบทบาทอะไร?
ความแตกต่างระหว่าง Cache::remember() และ Cache::rememberForever() คืออะไร?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Laravel อื่นๆ
พื้นฐาน PHP
พื้นฐาน OOP ใน PHP
Composer & Autoloading
พื้นฐาน Laravel
Laravel Routing
Blade Templates
Request & Response
พื้นฐาน Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
การตรวจสอบและฟอร์ม
การยืนยันตัวตน
การให้สิทธิ์และ Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
การแจ้งเตือนและเมล
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Repository Pattern
Laravel Packages
Security Best Practices
Laravel Octane
Laravel Distributed Systems
Observability & Monitoring
Deployment & DevOps
เชี่ยวชาญ Laravel สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี