MySQL - CHẬM TRÌ HOÃN <- không dùng nữa Bây giờ là gì?


7

Tôi vừa mới xem https://dev.mysql.com/doc/refman/5.7/en/insert-delayed.html của tài liệu MySQL

Tôi đã có ý định sử dụng CHẬM TRÌ HOÃN, nhưng tôi thấy rằng điều này đã bị phản đối.

Tôi vẫn cần chức năng này để tương thích với một số mã PHP đang xử lý một số chuyển dữ liệu rất lớn. Tôi khá vui khi cập nhật PHP của mình nhưng tôi không biết làm thế nào để đạt được chức năng tương tự bây giờ.

Làm thế nào chúng ta có thể đạt được kết quả tương tự như CHỨNG CHỈ TRÌ HOÃN bây giờ mà nó không được chấp nhận?


Bạn đang thực hiện chèn số lượng lớn vào bảng MyISAM ???
RolandoMySQLDBA

Không, đó là InodeDB và đó là sự đồng bộ gia tăng giữa hai cơ sở dữ liệu, chạy trên tập lệnh.
TolMera

Là mục tiêu để chèn nhiều hàng cuối cùng , nhưng với tác động tối thiểu đến các truy vấn khác? Nói chung, tốt hơn hết là bạn nên để InnoDB tự tìm ra. Bạn có thể nhận được một số lời khuyên hữu ích ở đây .
Rick James

Bạn có thể sử dụng bản sao thay vì một tập lệnh?
Rick James

Câu trả lời:


5

Theo MySQL 5.5. Tài liệu

CHERTN CHẬM chỉ hoạt động với các bảng MyISAM, MEMOR, ARCHIVE và BLACKHOLE. Đối với các động cơ không hỗ trợ TRÌ HOÃN, sẽ xảy ra lỗi.

Bạn có thể hạ cấp xuống MySQL 5.5 (Tất nhiên, tôi đang nói đùa). Tôi có ba gợi ý. Hãy nhìn vào chúng.

BỀN VỮNG # 1

Bạn có thể thiết lập bản sao MySQL và thực hiện như sau

BỀN VỮNG # 2

Điều chỉnh Môi trường InnoDB để xử lý ghi nhanh hơn. Vui lòng xem các bài đăng 4,5 năm tuổi của tôi Làm thế nào để sử dụng độ trễ chèn với công cụ InnoDB và sử dụng ít kết nối hơn cho các câu lệnh chèn? tải Mysql từ infile bị kẹt chờ trên ổ cứng

BỀN VỮNG # 3

Tùy chỉnh chèn số lượng lớn để sử dụng các phần chèn mở rộng tải một số lượng hàng cố định tại một thời điểm giống như mysqldump.


1

Tôi có nghĩa là câu hỏi của bạn, rằng bạn cần trì hoãn công việc cho đến sau một khoảng thời gian nhất định.

Trong những trường hợp này, tôi sẽ sử dụng hàng đợi và trì hoãn công việc xếp hàng của mình trong thời gian cần thiết.

Ví dụ: https://laravel.com/docs/5.3/queues#delayed-dispatching

Mặc dù từ các tài liệu "hàng đợi được chèn khi bảng không được sử dụng bởi bất kỳ luồng nào khác" không thể đạt được như thông qua phương thức này, bạn sẽ cần phải thực hiện chức năng này trong công việc của mình nếu được yêu cầu.


Điều này có thể mà không cần sử dụng Laravel? Rõ ràng điều này không thực sự trả lời câu hỏi của tôi.
TolMera

Tôi sẽ đặt câu trả lời của mình như một bình luận, mặc dù tôi không có đủ đại diện. Vâng, có thể không có laravel, bạn có thể xem rabbitmq.com/tutorials/tutorial-two-php.html
64k
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.