it-swarm-id.com

Jalan buntu di meja sesi

Jarang, alih-alih memuat situs saya, saya mendapatkan layar putih kematian dengan pesan kesalahan ini:

Deadlock ditemukan ketika mencoba untuk mendapatkan kunci; coba mulai ulang transaksi SQL = INSERT INTO jom_session (session_id, client_id, guest, time, userid, username) NILAI ('cv95odk14jbe8738ecg9se9de1', 0, 0, '1402423781', 101, 'username @ example.com ')

Saya tidak bisa menduplikasinya tetapi saya sudah melihatnya sendiri sebelumnya, dan sudah dilaporkan oleh pengguna lain. Apakah ada cara untuk mencegah hal ini terjadi?

3
ContextSwitch

Jika ada jalan buntu, itu akan menunjukkan bahwa pembaruan indeks dilakukan dari berbagai arah sehingga untuk berbicara dan mungkin ada bug di Joomla yang menyebabkan ini. Terlepas dari mendokumentasikan gejala atau mencoba menemukan bug, Anda dapat mengurangi masalah dengan memungkinkan tabel sesi menjadi lebih berkinerja.

Selain komentar Jordans, Anda bisa membuat tabel sesi sangat efisien dengan mengubahnya menjadi jenis tabel MySQL MEMORY. Ini berarti bahwa sesi hilang namun pada reboot MySQL.

Untuk mengubahnya menjadi tabel memori, alihkan bidang data dari mediumtext ke sesuatu seperti varchar (15000) (ukuran tergantung pada ekstensi apa yang menyimpan data apa), lalu ubah jenisnya menjadi MEMORY.

Anda juga perlu mengizinkan memori "tumpukan" yang cukup dalam konfigurasi MySQL Anda karena tabel sekarang akan disimpan dalam memori. Untuk situs besar yang saya kelola, saya menggunakan hingga 640MB.

Untuk semua ini, Anda harus memiliki VPS setidaknya tentu saja.

1
jdog