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

Partisi / Sharding / Pemisahan MySQL - ke mana harus pergi?

Anda pasti akan mulai mengalami masalah pada tabel 42 GB itu setelah tidak lagi muat di memori. Bahkan, segera setelah tidak muat di memori lagi, kinerja akan menurun dengan sangat cepat. Salah satu cara untuk mengujinya adalah dengan meletakkan tabel tersebut di komputer lain dengan RAM lebih sedikit dan melihat seberapa buruk kinerjanya.

Ini tidak benar. Partisi (baik melalui fitur di MySQL 5.1, atau hal yang sama menggunakan tabel MERGE) dapat memberikan manfaat kinerja yang signifikan bahkan jika tabel berada di drive yang sama.

Sebagai contoh, katakanlah Anda menjalankan kueri SELECT di tabel besar Anda menggunakan rentang tanggal. Jika tabelnya utuh, kueri akan dipaksa untuk memindai seluruh tabel (dan pada ukuran itu, bahkan menggunakan indeks bisa lambat). Keuntungan dari mempartisi adalah bahwa kueri Anda hanya akan berjalan di partisi yang benar-benar diperlukan. Jika setiap partisi berukuran 1 GB dan kueri Anda hanya perlu mengakses 5 partisi untuk memenuhi dirinya sendiri, tabel gabungan 5 GB jauh lebih mudah untuk ditangani MySQL daripada versi monster 42 GB.

Satu hal yang perlu Anda tanyakan pada diri sendiri adalah bagaimana Anda menanyakan data. Jika ada kemungkinan kueri Anda hanya perlu mengakses potongan data tertentu (yaitu rentang tanggal atau rentang ID), partisi semacam itu akan terbukti bermanfaat.

Saya pernah mendengar bahwa masih ada beberapa buggy dengan partisi MySQL 5.1, terutama terkait dengan MySQL memilih kunci yang benar. Tabel MERGE dapat menyediakan fungsionalitas yang sama, meskipun memerlukan sedikit lebih banyak overhead.

Semoga membantu...semoga berhasil!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql AVG untuk mengabaikan nol

  2. Bagaimana mengatasi kesalahan Umum:Server MySQL 2006 telah hilang

  3. Cara membaca kueri sql ke pandas dataframe / python / Django

  4. pernyataan siap ditiru vs pernyataan siap nyata

  5. Bagaimana cara memperbaiki kesalahan yang disebabkan oleh libmysqlclient.15.dylib tidak dimuat?