Pembelajaran yang disyorkan: tutorial video mysql
Sebelum mengubah suai struktur jadual , mari kita lihat dahulu masalah yang mungkin berlaku.
MySQL mempunyai kunci yang dipanggil kunci metadata MDL Apabila jadual diubah suai, kunci ini akan ditambahkan secara automatik pada jadual, iaitu, ia tidakkah Anda perlu menggunakannya secara eksplisit sendiri.
Membaca dan membaca tidak saling eksklusif, membaca dan menulis, menulis dan menulis adalah saling eksklusif, jadi
Dan sebaik sahaja MDL dikunci, ia hanya akan dikeluarkan selepas transaksi yang diminta pada masa ini diserahkan Jika ia adalah transaksi yang lama, atau terdapat sejumlah besar data dalam talian, jadual struktur akan diubah suai secara lalai Tanpa kunci tulis MDL, ia akan memakan masa dan menyekat permintaan seterusnya yang lain.
Bayangkan senario di mana A(pilih), B(ubah), C(pilih), D(pilih)... adalah permintaan kepada jadual MySQL yang sama dalam urutan.
Apabila A (pilih) memperoleh kunci baca MDL jadual, ia akan menyekat B (mengubah), kerana B perlu menambah kunci tulis MDL Selepas B disekat, ia akan menyebabkan orang lain dalam baris gilir menunggu . Semua permintaan disekat, akhirnya menyebabkan sambungan MySQL yang tersedia habis, meminta tamat masa dan masalah lain.
Memandangkan kunci MDL di atas, kita tahu bahawa mengubah struktur jadual akan menyekat permintaan biasa yang lain, jadi operasi pengubahsuaian harus diletakkan di tempat tanpa henti Ia dilakukan pada waktu puncak perniagaan, biasanya antara 2 dan 4 pagi.
Langkah khusus:
Masalah dengan penyelesaian di atas ialah apabila jumlah daripada data adalah besar, ia mengambil masa untuk mengimport data Semasa proses ini, perkhidmatan tidak boleh diakses .
Penambahbaikan:
Cipta jadual baharu A_new, yang mempunyai lebih banyak medan daripada jadual asal Langgan jadual asal melalui langganan data data dalam jadual dalam talian A disegerakkan ke jadual A_new yang baru dibuat Proses ini akan diteruskan, dan jadual A boleh ditambah, dipadam, diubah suai dan disemak semasa proses ini akan sentiasa ada apabila data kedua-dua jadual disegerakkan sepenuhnya Ya, tiada perbezaan dalam data Pada masa ini, nama jadual asal A diubah suai, dan jadual baharu A_new diubah suai kepada jadual asal A. Operasi ini adalah operasi singkat dan boleh diselesaikan serta-merta. tanpa banyak impak.
Kebaikan dan keburukan:
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai struktur jadual pangkalan data MySQL dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!