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

Mesin penyimpanan MySQL untuk tabel log

Nah, menurut pertanyaan Anda, InnoDB harus melakukannya karena:

  1. Skalabilitasnya jauh lebih baik daripada MyISAM
  2. Ini penguncian baris, oleh karena itu jika Anda ingin menulis lebih banyak daripada memilih, ini lebih cocok.
  3. Terakhir, karena Anda mengatakan bahwa mereka akan jarang diakses, MyISAM tidak diperlukan karena lebih baik pada kueri tertentu.

Periksa ini untuk informasi lebih lanjut

EDIT

Nah, di komentar Anda bertanya tentang mesin lain. Berikut adalah daftar lengkap dari mesin. Diantaranya, seperti yang Anda katakan arsip memiliki kekurangan, yang lain tidak sesuai dengan permintaan Anda. Berikut kutipan dari situs MySQL:

InnoDB has been designed for maximum performance when processing large data volumes. 
Its CPU efficiency is probably not matched by any other disk-based relational database
engine.

Jadi intinya:

  1. Jika Anda akan menggunakan MEMORY, jangan seperti yang Anda katakan, Anda tidak akan banyak mengakses data dan tabel Anda akan bertambah terlalu banyak. Anda akan membutuhkan banyak RAM untuk itu dan ketika Anda me-reboot semua data akan hilang.
  2. Jika Anda akan menggunakan MyISAM, jangan karena ini dirancang untuk tabel yang kueri pemilihannya lebih sering daripada penyisipan dan pembaruan.
  3. Untuk arsip, itu pilihan Anda. Di sini adalah perbandingan antara MyISAM dan arsip untuk tabel log. Saya akan tetap menggunakan InnoDB.
  4. Saya bahkan tidak akan menyebutkan Merge, Blackhole, Example, dan mesin lainnya. (Saya tidak memiliki banyak pengetahuan tentang mesin CSV tetapi sejauh yang saya baca, itu bukan mesin yang sesuai untuk tabel semacam ini.

Sejujurnya, saya dulu menghabiskan banyak waktu sebelum membuat langkah penting dalam pengkodean. Saya meneliti selama berjam-jam, mungkin berhari-hari tentang suatu masalah untuk melihat jalan mana yang paling tepat. Saya akan memberitahu Anda apa, meneliti itu baik, tetapi setelah titik jika itu mencegah Anda bekerja maka Anda harus berhenti, minum kopi, dan segera membuat pilihan Anda. Karena itu, coba saja yang paling tepat untuk Anda dan seperti yang akan Anda alami, Anda akan menemukan cara yang lebih baik lagi, dengan mencoba sendiri. Maksud saya, saya tidak percaya bahwa Facebook dirancang untuk volume seperti itu, tetapi seiring pertumbuhannya, mereka terus mengubah strukturnya. Itu yang saya yakini, mungkin bukan kenyataan :) Bagaimanapun, semoga info ini membantu Anda.

EDIT 2013

Di bawah ini Anda akan menemukan deskripsi singkat untuk mesin penyimpanan bawaan MySQL.

MyISAM

Tabel ini mencakup pengoptimalan tambahan, seperti cache lanjutan dan mekanisme pengindeksan, yang menyediakan akses cepat ke data. Menggunakan penguncian tingkat tabel, mesin penyimpanan MyISAM menyediakan operasi bersamaan. Ketika kinerja membaca menjadi perhatian, umumnya, MyISAM adalah pilihannya.

Memori

Juga disebut tabel heap, tabel memori ideal untuk pengambilan cepat data yang sering digunakan yang jarang diubah (seperti kode negara, kode pos, atau tabel pencarian lainnya). Seperti namanya, data disimpan dalam memori dan karenanya aksesnya jauh lebih cepat daripada data yang disimpan dalam disk. Salah satu batasan signifikan untuk menggunakan memori adalah bahwa data valid selama sesi MySQL. Saat macet, atau mati, data akan hilang.

InnoDB

Satu kasus di mana Anda harus menggunakan mesin penyimpanan ini adalah ketika Anda perlu menggunakan kunci asing atau transaksi. InnoDB lebih konkuren daripada MyISAM karena menyediakan penguncian tingkat baris. Mesin penyimpanan sangat andal. Kasus lain ketika Anda ingin menggunakan penyimpanan ini adalah ketika Anda memiliki lebih banyak tulis daripada baca. Jika Anda sering menulis data ke dalam tabel, coba gunakan penyimpanan ini, apakah penyimpanan ini lebih konkuren daripada MyISAM.

Arsip

Ini dirancang untuk menyimpan data dalam jumlah besar dalam format terkompresi. Salah satu kasus penggunaan mesin penyimpanan ini adalah untuk menyimpan arsip atau data historis atau log keamanan. Tabel tidak menggunakan indeks sehingga untuk pengambilan dan penyimpanan data harian, ini bukan pilihan yang baik. Penguncian tingkat baris dan data tidak terkompresi dengan cepat saat diminta. Selain itu, mengubah tabel tidak dimungkinkan.

Gabungkan

Merge digunakan untuk 'menggabungkan' tabel yang dipartisi yang berada pada mesin yang sama. Saat Anda membagi tabel besar menjadi beberapa tabel yang lebih kecil, dan mengaksesnya secara bersamaan menggunakan tabel gabungan, manfaat terbesarnya adalah kecepatannya. Pencarian dan pengurutan akan dilakukan lebih cepat karena data dalam tabel lebih sedikit.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PyMySQL mengembalikan nilai lama/snapshot/tidak menjalankan kembali kueri?

  2. Cari kecocokan seluruh kata di MySQL

  3. MySQL:Apakah mungkin untuk 'mengisi' SELECT dengan nilai tanpa tabel?

  4. InnoDB SELECT ... FOR UPDATE pernyataan mengunci semua baris dalam tabel

  5. JDBC VS Hibernasi