Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Học thuyết2 - Làm thế nào để cải thiện hiệu quả xả?

Bạn đang làm đúng - nó chỉ chậm thôi, bởi vì việc bổ sung thêm phần trừu tượng của ORM có nghĩa là bạn không thể thực hiện các loại tối ưu hóa mà bạn muốn.

Điều đó nói rằng, EntityManager thực sự bị chậm đối với các giao dịch lớn như vậy. Nếu bạn không hoàn toàn cần tất cả chúng trong một giao dịch lớn, bạn có thể có được mã hiệu quả hơn bằng cách flush () ing và sau đó xóa () ing EM cứ sau 20-200 lần lặp lại vòng lặp của bạn.

Nếu điều đó không giúp bạn có đủ hiệu suất, giải pháp thay thế duy nhất mà tôi có thể nghĩ đến là hoàn nguyên về mã tùy chỉnh chạy SQL tùy chỉnh trực tiếp trên DBMS của bạn.

Tôi biết đây không phải là một câu trả lời tuyệt vời, nhưng ít nhất tôi có thể nói với bạn rằng bạn không bị điên.

------ chỉnh sửa ------

Từ bài báo chính thức của Doctrine2 trên Xử lý hàng loạt :

Ngoài ra, có sự khác biệt đáng kể về hiệu suất khi sử dụng từ xa so với cục bộ cơ sở dữ liệu như chi phí gửi mỗi truy vấn đến máy chủ từ xa là khá lớn. Chi phí thấp hơn nhiều trong khi sử dụng cơ sở dữ liệu cục bộ nhờ các giao dịch và tối ưu hóa DB. (ví dụ:70 giây giảm xuống 300ms trong trường hợp ví dụ trong câu hỏi)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một cách tốt hơn để tạo mảng json này từ dữ liệu MySql với php

  2. Hiển thị hình ảnh BLOB từ cơ sở dữ liệu Mysql thành div động trong html

  3. Tại sao từ khóa MYSQL IN không xem xét các giá trị NULL

  4. Cách trừ số ngày trong MySQL

  5. Gửi biểu mẫu bằng <input type =button>