Situasi
Dalam database magento kami, kami memiliki tiga tabel yang tumbuh terlalu besar.
- sales_flat_quote_shipping_rate: 3045MB
- sales_flat_quote_address: 1688MB
- sales_flat_quote: 1897MB
Itu lebih dari 6GB data.
Saya telah menemukan artikel ini tentang cara memotong tabel ini . Artikel ini hanya berbicara tentang tabel ketiga.
Saya tidak yakin tentang pemotongan, dan saya lebih suka menghapus semua data yang lebih tua dari 60 hari. Artikel itu berbicara tentang 17 juta catatan - kami memiliki 20! Jika saya benar, menghapus catatan ini tidak akan mengunci tabel, dan saya sedang menguji ini pada instalasi pengujian. Itu sepertinya berhasil, dan itu tidak terlalu bertentangan dengan situs.
Pertanyaan
- Saya ingin tahu apakah saya dapat menggunakan kueri yang sama untuk dua tabel lainnya juga?
- Saya ingin tahu untuk apa tabel-tabel ini.
sumber
limit 1000000
, sampai semua catatan yang lebih dari 60 hari hilang. Kemudian saya menginstal modul AOE Quote Cleaner. Saya tidak menggunakan modul AOE untuk menghapus 20m, karena situs web berhenti bekerja - setidaknya pada mesin uji. Script tidak menimbulkan masalah.Di Magento2, 'sales_flat_quote' diganti dengan 'quote', jadi mengikuti perintah SQL dapat memperbaiki masalah ini untuk Magento2:
sumber
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Meskipun solusi Fiasco Labs berhasil, saya hanya akan memulai dengan ekstensi langsung dari awal dan digunakan
Mage_Sales_Model_Quote_Resource_Collection
untuk memfilter dan menghapus tanda kutip lama dari pemilihan. Menggunakan metode yang tepat, Anda dapat memastikan operasi Anda akan bekerja pada setiap instalasi Magento dengan tidak bergantung pada kendala basis data atau permintaan mentah.Sesuatu seperti (belum diuji) ...
Anda dapat memperpanjang ini
Mage_Log
atau membuat ekstensi yang berdiri sendiri. Cukup mudah.sumber
1.
Hindari menggunakan kueri manual dalam ekstensi.2.
Cobalah untuk membuat ekstensi Anda mandiri, jika mungkin.DELETE
pertanyaan seperti ini tergantung pada batasan basis data, yang dapat diubah di masa depan.3.
Gunakan metode pabrik Magento dengan tepat.Kueri ini akan menghapus semua kutipan, yang tidak dikonversi dalam pesanan.
sumber