Khi nào sử dụng chunk trong laravel?
Tôi đã thực hiện một số điểm chuẩn không khoa học của các phương thức có sẵn trong Laravel. Ngay cả các tài liệu chính thức cũng mô tả các đặc điểm của từng kỹ thuật, tôi muốn có một "tiêu chuẩn sân bóng" nhanh chóng để chọn cái nào. Lấy số exakt với một hạt muối lớn, quan điểm của tôi là chỉ ra sự khác biệt giữa các phương pháp Show TL; DR
Đã thử nghiệm với Laravel 8. 74 và PHP 7. 4. 25 trên macOS với Laravel Valet điểm chuẩn10 000 hồ sơMethodMemoryTimeget() 26 MB261mscursor() 12 MB460mslazy() 9MB300mschunk() by 5006MB400ms100 000 hồ sơMethodMemoryTimeget() 277 MB2. 72 giâycursor() 75 MB5. 8 giây____79MB5. 4 giâychunk() bởi 5006MB7. 56 giâyphương phápđược()Nó sử dụng công cụ tìm nạp tất cả, tải tất cả các bản ghi vào bộ nhớ. Cách này nhanh nhưng chiếm nhiều bộ nhớ
con trỏ()Phương thức con trỏ sử dụng tìm nạp và mỗi lần chỉ tải một bản ghi từ bộ đệm vào bộ nhớ. Một nhược điểm lớn của phương pháp này là
đoạn ()Sử dụng nhiều lệnh gọi tìm nạp nhỏ hơn và cố gắng giữ bộ nhớ ở mức thấp bằng cách chia kết quả truy vấn lớn thành các truy vấn nhỏ hơn bằng cách sử dụng giới hạn tùy thuộc vào kích thước khối mà bạn chỉ định. Theo một cách nào đó, nó đang cố gắng sử dụng lợi ích của cả
lười biếng()Trong Laravel 8 cũng có Trong ví dụ này, tôi sẽ hướng dẫn bạn cách sử dụng phương thức chunk trong laravel. bạn có thể dễ dàng và đơn giản sử dụng phương thức chunk trong laravel Laravel eloquent chunk method chia nhóm dữ liệu lớn thành nhóm dữ liệu nhỏ hơn ví dụ 1
ví dụ 2 Bộ điều khiển Trong bước này, bạn có thể lấy dữ liệu trong cơ sở dữ liệu
tập tin lưỡi Trong bước, bạn có thể hiển thị dữ liệu trên trình duyệt
Nó sẽ giúp bạn Trong hướng dẫn này, bạn sẽ tìm hiểu về Laravel Chunk Eloquent Method Example và ứng dụng của nó với ví dụ thực tế Trong hướng dẫn ví dụ về phương thức eloquent chunk trong laravel này, tôi sẽ chỉ cho bạn cách sử dụng phương thức chunk trong laravel với các bản ghi lớn trong laravel. Bạn cũng sẽ học Cách chèn dữ liệu lớn vào laravel bằng cách sử dụng chunk Mục lục−
Phương thức Laravel Eloquent Chunk()Trong Laravel, phương thức eloquent chunk được sử dụng để chia một lượng lớn tập dữ liệu thành nhóm tập dữ liệu con nhỏ hơn còn được gọi là chunk Giả sử, bạn đang làm việc với một lượng lớn tập dữ liệu trong cơ sở dữ liệu ứng dụng. Điều này làm cho việc xử lý một lượng lớn tập dữ liệu trong một lần trở nên khó khăn hơn khi phương pháp chunk của laravel sẽ giúp bạn chia một nhóm dữ liệu lớn hơn thành một nhóm tập dữ liệu nhỏ hơn (khối) Trong phương pháp này, chúng ta sẽ chứng minh việc sử dụng phương thức eloquent chunk của laravel với các ví dụ khác nhau Sử dụng laravel chunk với Eloquent Model1 $người dùng = Người dùng. tất cả(); / Lượt xem 1 2 3 4 5 6 7 8 9 @foreach($người dùng->chunk(3) as $row) <div class="grid__row"> @foreach($row as $user) <div class="grid__item"> {{ $người dùng->name}} </div> @endforeach </div> @endforeach Phương pháp này hoạt động với tất cả các loại bộ sưu tập laravel, xem ví dụ sau 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 $màu sắc = thu thập(['orange', 'blue', 'green', 'red', 'yellow', 'purple']); $khối = $màu->chunk(3); print_r($khối); /* đầu ra Mảng ( [0] => Mảng ( [0] => cam [1] => màu xanh lam [2] => xanh lục ) [1] => Mảng ( [3] => đỏ [4] => màu vàng [5] => tím ) ) */ Gửi Email với Laravel chunkGiả sử bạn có một danh sách lớn người dùng để gửi email và bạn phải gửi email cho tất cả người dùng. Đôi khi có vấn đề là bạn không thể gửi email trên 10000 email cùng một lúc. Trong trường hợp này, bạn có thể sử dụng phương pháp Chunk của Laravel để chia một lượng lớn danh sách người dùng thành nhóm người dùng nhỏ để bạn có thể dễ dàng gửi thư cho mọi người. Xem ví dụ sau 1 2 3 4 5 6 Người dùng. orderBy('id')->chunk(100, function ($users) { foreach ($người dùng as $user) { // viết mã gửi email của bạn tại đây } }); Chèn dữ liệu lớn vào laravelNếu bạn muốn chèn một lượng lớn dữ liệu vào cơ sở dữ liệu laravel thì bạn có thể thực hiện việc này với sự trợ giúp của laravel chunk như sau |