Developer Guideline
  • Home
  • 🧠Must you know
    • Algorithm
    • Architecture
      • API
    • Comparison
      • ID Token vs Access Token
      • Lazy Loading vs Eager Loading
      • Morphs vs Foreign Key
      • UUID vs ULID
      • GraphQL vs REST
      • Cache vs CDN
      • Concurrency vs Parallelism
      • Null vs Not Null
    • Diagram
      • CI/CD Pipeline
      • High Performance Culture
  • ☂️Laravel
    • Template
      • Template System Check in Route on Laravel
      • Template Function in FormController on Laravel
      • Template Route call FormController on Laravel
      • Template Route Prefix Name on Laravel
      • Template Basic and Custom Pagination on Laravel
      • Template PHP Artisan Command
      • Template Route for App Environment
    • Feature
      • Data Type
      • Mailables
      • Rules
    • Package
    • Document
  • 🫖Collaboration Agreement
    • Naming Convention
      • Naming Convention for Git Branch
      • Naming Convention for Environment Variable
    • Rule
      • Rule of Commit Message
      • Semantic Versioning
  • 🦣Project Manager
    • Requirements
      • System Requirements
      • Technical Requirements
      • Functional Requirements
Powered by GitBook
On this page
  • 🆚 Comparison
  • 🅰️ Lazy Loading
  • 🅱️ Eager Loading
  1. Must you know
  2. Comparison

Lazy Loading vs Eager Loading

🆚 Comparison

Feature
Lazy Loading
Eager Loading

Definition

Loads related objects only when accessed

Loads related objects immediately

Performance

Can reduce initial load time

May increase initial load time

Query Control

More granular control over fetched data

Less control over fetched data

Complexity

Simpler to implement initially

More complex to implement correctly

Network Calls

May require multiple queries

Usually requires fewer queries

Usage Scenario

Suitable for large datasets with selective access

Suitable for small datasets or when all related data is needed together

🅰️ Lazy Loading

การใช้งาน : ใช้เมื่อต้องการประหยัดทรัพยากรและเพิ่มประสิทธิภาพในการโหลดข้อมูล เนื่องจากข้อมูลจะถูกโหลดเฉพาะเมื่อมีความจำเป็นจริง ๆ

ข้อดี : ช่วยลดการใช้ทรัพยากรในขณะที่ไม่จำเป็น และ ช่วยเพิ่มประสิทธิภาพของแอปพลิเคชันโดยลดเวลาการโหลดข้อมูลที่ไม่ได้ใช้

ข้อเสีย : อาจทำให้เกิดปัญหาการเรียกข้อมูลซ้ำซ้อนได้ หรือ อาจทำให้เกิดปัญหาการแก้ไขข้อมูลที่มีการอ้างอิงระหว่างข้อมูล

$project = Project::find(1);
$user = $project->user;

🅱️ Eager Loading

การใช้งาน : ใช้เมื่อต้องการความแม่นยำในการดึงข้อมูลแบบเต็มรูปแบบตั้งแต่ต้น ซึ่งอาจช่วยลดเวลาในการเข้าถึงข้อมูลที่ซับซ้อน

ข้อดี : ช่วยให้การเข้าถึงข้อมูลที่ซับซ้อนเร็วขึ้น และ ลดความซับซ้อนในการจัดการข้อมูลที่มีความสัมพันธ์มาก

ข้อเสีย : ใช้ทรัพยากรมากขึ้นในการโหลดข้อมูลเป็นจำนวนมาก หรือ อาจทำให้ล่าช้าในการโหลดหน้าเว็บหรือการทำงานที่ต้องการข้อมูลบางส่วนเท่านั้น

$projects = Project::with('user')->get();

foreach ($projects as $project) {
    $user = $project->user;
}
PreviousID Token vs Access TokenNextMorphs vs Foreign Key

Last updated 10 months ago

🧠