Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Banyaknya jumlah kolom, Pilih semua membutuhkan waktu selamanya

InnoDB menyimpan tabel "lebar" dengan cara yang berbeda. Alih-alih menyatukan semua kolom dalam satu string (ditambah overhead, seperti panjang, dll), ia melakukan hal berikut:

  • Jika total semua kolom untuk baris tertentu melebihi sekitar 8 KB, sebagian data akan dipindahkan ke area penyimpanan lain ("tidak direkam").
  • Kolom mana yang dipindahkan secara tidak direkam bergantung pada ukuran kolom, dll.
  • Detailnya bergantung pada ROW_FORMAT dipilih.
  • "Off-record" adalah blok (atau blok) 16 KB lainnya.
  • Nanti, saat melakukan SELECT * (atau setidaknya mengambil kolom yang tidak direkam), itu harus melakukan pengambilan disk lain.

Apa yang harus dilakukan?

  • Pikirkan kembali untuk memiliki begitu banyak kolom.
  • Pertimbangkan "partisi vertikal", di mana Anda memiliki tabel lain yang berisi TEXT yang dipilih kolom. Sarankan untuk memilih grup kolom berdasarkan pola akses di aplikasi Anda.
  • Untuk kolom yang biasanya cukup panjang, pertimbangkan untuk mengompresnya di klien dan menyimpannya ke dalam BLOB bukannya TEXT . Sebagian besar "teks" menyusut 3:1. Gumpalan dikirim tidak direkam sama seperti Teks, namun, gumpalan terkompresi ini akan lebih kecil, sehingga kecil kemungkinannya untuk tumpah.
  • Lakukan lebih banyak pemrosesan dalam SQL -- untuk menghindari pengembalian semua baris, atau untuk menghindari pengembalian teks lengkap, dll. Saat menyekop banyak teks secara membabi buta ke klien, jaringan dan klien menjadi faktor penting dalam waktu yang telah berlalu, bukan hanya SELECT , sendiri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah mysql_real_escape_string() rusak?

  2. Gabungkan INSERT dan SELECT dalam satu kueri SQL (Zapier)

  3. Cara membuat Gambar Docker MySQL yang terisi pada waktu pembuatan

  4. Menggunakan Parameter dalam pernyataan sql yang berisi date_format

  5. Tidak dapat terhubung ke server mysql dengan MAMP atau dengan Server Komunitas