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

MySQL ALTER TABLE pada tabel yang sangat besar - apakah aman untuk menjalankannya?

Seperti yang baru saja saya baca, ALTER TABLE ... ORDER BY ... query berguna untuk meningkatkan kinerja dalam skenario tertentu. Saya terkejut bahwa Indeks PK tidak membantu dalam hal ini. Namun, dari dokumen MySQL , sepertinya InnoDB memang menggunakan indeks. Namun InnoDB cenderung lebih lambat seperti MyISAM. Yang mengatakan, dengan InnoDB Anda tidak perlu memesan ulang tabel tetapi Anda akan kehilangan kecepatan super MyISAM. Mungkin masih layak dicoba.

Cara Anda menjelaskan masalahnya, tampaknya ada terlalu banyak data yang dimuat ke dalam memori (mungkin bahkan terjadi pertukaran?). Anda dapat dengan mudah memeriksanya dengan memantau penggunaan memori Anda. Sulit untuk mengatakannya karena saya tidak tahu MySQL dengan baik.

Di sisi lain, saya pikir masalah Anda terletak di tempat yang sangat berbeda:Anda menggunakan mesin dengan hanya 512 MB RAM sebagai server Database dengan tabel yang berisi lebih dari 4 Mio baris... Dan Anda melakukan memori yang sangat berat operasi di seluruh meja di mesin itu. Tampaknya 512Megs tidak akan cukup untuk itu.

Masalah yang jauh lebih mendasar yang saya lihat di sini:Anda melakukan pengembangan (dan kemungkinan besar pengujian juga) di lingkungan yang sangat berbeda dengan lingkungan produksi. Jenis masalah yang Anda jelaskan adalah yang diharapkan. Mesin pengembangan Anda memiliki memori enam kali lebih banyak daripada mesin produksi Anda. Saya yakin saya dapat mengatakan dengan aman, bahwa prosesornya juga jauh lebih cepat. Dalam hal ini, saya sarankan Anda membuat mesin virtual yang meniru situs produksi Anda. Dengan begitu, Anda dapat dengan mudah menguji proyek tanpa mengganggu lokasi produksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan data MySql dan simpan ke dalam array Javascript

  2. Haruskah saya menghindari COUNT bersama-sama di InnoDB?

  3. Deteksi kegagalan pembaruan/penyisipan mysql karena batasan unik yang dilanggar

  4. Ekspor MySQL ke outfile:karakter pelarian CSV

  5. ekstrak mysql tahun dari format tanggal