Saya telah mewarisi situs klien yang memiliki basis data sangat besar tanpa alasan. Ada jumlah konten yang moderat dan modul yang diaktifkan sangat sedikit. Namun, database terlalu besar untuk bergerak dengan mudah dan saya ingin membersihkannya.
Saya telah membersihkan tabel cache standar, syslog dan accesslog.
Apakah ada tabel lain yang dapat saya potong dengan aman di situs Drupal standar?
{cache_form}
tidak sepenuhnya benar. Ini bukan tabel cache yang sebenarnya. Ini berisi dalam pengiriman formulir kemajuan. Jika Anda menghapus semua data dalam tabel ini, pengguna Anda mungkin kehilangan data. Hal yang tepat untuk dilakukan dengan tabel ini adalah untuk kedaluwarsa entri.Jawaban:
Gunakan modul cadangan & migrasi , ia datang dengan standar yang baik untuk melewatkan data yang tidak perlu . Secara default menghasilkan cadangan DB tanpa cache, pengawas dan beberapa tabel lainnya.
Jika ini tidak membantu, coba lihat dengan phpMyAdmin dan beri tahu kami tabel mana yang memiliki banyak entri.
sumber
Drupal 7 tabel yang dapat dikecualikan
Berikut adalah daftar tabel di Drupal 7 yang dapat Anda hapus (untuk mengurangi ukuran basis data) atau dengan aman dikecualikan untuk melakukan migrasi (seperti pada pertanyaan tentang Bagaimana mengurangi ukuran basis data yang diekspor secara lokal untuk menyiasati batas impor server saya? ):
Biasanya tabel seperti
search_index
danwatchdog
menggunakan banyak ruang basis data, jadi menghilangkan 2 tabel itu saja sudah bisa membuat perbedaan besar.Tabel lain yang mungkin dikecualikan
Periksa ukuran tabel Anda yang tersisa dan tentukan yang mana yang paling besar.
Biasanya Anda mungkin menemukan tabel sesi yang tidak memiliki prosedur pembersihan. Tabel seperti itu Anda mungkin juga bisa mengecualikan.
Modul Cadangan dan Migrasi
Untuk lebih mengurangi tantangan sebagaimana dirinci dalam " Bagaimana cara mengurangi ukuran basis data yang diekspor secara lokal untuk mengatasi batas impor server saya? ", Lihat juga modul Cadangan dan Migrasi . Berikut adalah kutipan dari halaman proyeknya (marka tebal ditambahkan di sini):
Dan ada lebih banyak lagi: jika lingkungan lokal Anda (mis. Menang atau Mac) berbeda dari OS yang server situs web Anda jalankan (seperti Linux), maka perbedaan antara OS ini menyiratkan potensi tantangan tambahan. Saya memiliki pengalaman yang baik dengan modul Cadangan dan Migrasi di antara OS yang berbeda, yang tidak menyebabkan masalah (berfungsi dengan baik) dalam situasi di mana ekspor / impor MySql gagal sebelumnya.
sumber
cache_
prepended atau_cache
append juga aman untuk dipotong, sepertifeatures_cache
atau lainnyaviews_data_object_export_cache
._drupal_session_garbage_collection
akan menjaga meja tetap rapi, berdasarkan pengaturan sistem.Dalam pengalaman saya, saya membersihkan semua tabel "cache_ *".
sumber
Saya terkadang menjalankan SQL ini untuk mengawasi pertumbuhan tabel-tabel teratas:
sumber
Watchdog dan sesi juga dapat dihapus, perlu diingat bahwa semua pengguna akan keluar.
sumber
Dengan mySQL Anda dapat melakukan hal-hal menyenangkan dengan program mysqldump untuk mengekspor database secara keseluruhan atau sebagian. Misalnya ini hanya mengekspor struktur:
Anda kemudian dapat menggunakan opsi 'abaikan tabel' untuk mengekspor data lebih lanjut, mis
Itu menempatkan data di akhir file sebelumnya mengabaikan beberapa tabel besar.
Jika kemudian Anda membutuhkan tabel besar-besaran maka Anda dapat mengekspornya ke file lain menggunakan pendekatan di atas, Anda kemudian dapat mengimpornya dalam potongan (meskipun fk check off mungkin diperlukan).
Anda melakukan gzip file Anda sebelum mengunggah, atau itu pertanyaan konyol?
sumber
Gunakan modul OptimizeDB untuk membersihkan tabel cache. The Administrasi Database ini juga membantu.
Jangan lupa untuk memiliki cadangan basis data.
sumber
tidak super ahli ini tetapi berbagi pengalaman saya ... jika Anda tidak menggunakan cadangan dan modul bermigrasi dan secara manual ekspor mereka beberapa tabel Anda bisa mengosongkan / truncate akan
watchdog
,cache
,cache_menu
,cache_block
,cache_content
,cache_form
karena mereka mungkin mengandung besar jumlah kliring cached yang saya kira tidak akan sakit ... tapi sekali lagi ini adalah pengalaman saya dan saya belum pernah mengalami masalah atau kehilangan data karena hal ini.sumber
Beberapa ide:
sumber
Periksa
example.drushrc.php
daftar mana ini:Aman untuk menghapusnya dalam hal memindahkan basis data antara lingkungan yang berbeda (terutama ketika Anda bekerja dengan basis data besar ). Namun Anda masih perlu memahami apa yang Anda kliring.
sumber
Tabel tambahan yang dapat dihapus:
Hal-hal lain yang mungkin memakan cukup banyak ruang: - Versi lama dari konten Anda (tidak mungkin dibersihkan dengan truncate sederhana). - locales_source dan locales_target. Jika Anda memiliki bahasa yang tidak digunakan lagi atau merangkai terjemahan untuk modul yang tidak Anda gunakan lagi. Tabel-tabel ini sepertinya tidak pernah dibersihkan.
sumber