Tôi có một trang web có lưu lượng truy cập rất cao, nơi có thể có 1000 bản ghi mới được chèn mỗi giờ.
Đây là một lỗi làm tê liệt trang web:
PDOException: SQLSTATE[40001]: Serialization failure: 1213
Deadlock found when trying to get lock;
try restarting transaction: INSERT INTO {location_instance}
(nid, vid, uid, genid, lid) VALUES (:db_insert_placeholder_0,
:db_insert_placeholder_1, :db_insert_placeholder_2,
:db_insert_placeholder_3, :db_insert_placeholder_4);
Array ( [:db_insert_placeholder_0] => 1059 [:db_insert_placeholder_1] =>
1059 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] =>
cck:field_item_location:1059 [:db_insert_placeholder_4] => 1000 )
Tôi sẽ rất ngạc nhiên nếu MySQL không thể xử lý loại tải này. Vì vậy, câu hỏi của tôi là, đây có phải là vấn đề về cơ sở dữ liệu không và làm cách nào tôi có thể định cấu hình MySQL để có thể xử lý nhiều lưu lượng truy cập này?
Tôi có một bản sao trang web của mình được thiết lập trên một máy chủ phát triển với các tập lệnh mô phỏng tải nội dung được thêm vào trang web. Tôi đang chạy Ubuntu, LAMP stack, với 16GB RAM.
Phải thừa nhận rằng, tôi không am hiểu lắm về cơ sở dữ liệu. Trên thực tế, tôi đang bắt đầu với my.cnf mặc định đi kèm với nó sau khi 'apt-get install' kết thúc. Bàn là tất cả Innodb. Những gì bắt đầu cài đặt cấu hình và cách tiếp cận bạn muốn giới thiệu để bắt đầu giải quyết vấn đề này?
Hãy cho tôi biết những gì bạn có thể cần thêm thông tin.
Cảm ơn