Mesin penyimpanan merujuk pada jenis tabel. Mesin penyimpanan basis data menentukan cara penyimpanan tabel di komputer. Artikel ini memperkenalkan mesin penyimpanan yang didukung oleh basis data awan MySQL.
InnoDB Engine
InnoDB adalah mesin penyimpanan OLTP yang paling umum digunakan, mengadopsi kontrol konkurensi multi-versi (MVCC) dan teknologi penguncian tingkat baris untuk menyediakan kemampuan pemrosesan transaksi berkinerja tinggi dan andal. Dibandingkan dengan mesin penyimpanan MySQL lainnya, InnoDB mendukung integritas data yang lebih baik, termasuk kunci asing dan rollback, serta menyediakan fungsi kueri tingkat lanjut. Secara bersamaan, Tencent Cloud telah melakukan banyak optimisasi kernel pada InnoDB, memberikannya keunggulan kinerja yang lebih signifikan, sehingga banyak digunakan dalam skenario aplikasi berkinerja tinggi dan konkurensi tinggi.
Basis data awan MySQL secara default mendukung mesin penyimpanan InnoDB. Pada versi MySQL 5.6 dan yang lebih tinggi, mesin MyISAM dan Memory tidak lagi didukung. Alasan utamanya adalah sebagai berikut:
Dalam versi MySQL saat ini, TencentDB telah melakukan banyak optimisasi kernel pada InnoDB, sehingga memiliki keunggulan kinerja yang signifikan.
MyISAM menggunakan mekanisme penguncian tingkat tabel, sedangkan InnoDB menggunakan mekanisme penguncian tingkat baris. Biasanya, InnoDB memiliki kinerja penulisan yang lebih tinggi.
Catatan:
Kunci tingkat tabel adalah jenis kunci dengan granularitas terbesar di MySQL, yang berarti mengunci seluruh tabel yang sedang dioperasikan.
Kunci tingkat baris adalah jenis kunci dengan granularitas paling halus di MySQL, yang berarti hanya mengunci baris yang sedang dioperasikan.
MyISAM memiliki kekurangan dalam perlindungan integritas data, dan kekurangan ini dapat menyebabkan kerusakan bahkan kehilangan data basis data. Selain itu, banyak dari kekurangan ini merupakan masalah desain yang tidak dapat diperbaiki tanpa mengorbankan kompatibilitas.
MyISAM dan Memory memiliki biaya migrasi yang rendah ke InnoDB, sebagian besar aplikasi hanya perlu mengubah kode pembuatan tabel untuk menyelesaikan migrasi.
Perkembangan MyISAM sedang beralih ke InnoDB. Dalam versi resmi terbaru MySQL 8.0, semua tabel sistem telah menggunakan InnoDB.
Memory tidak dapat menjamin integritas data. Saat instance dimulai ulang atau terjadi peralihan master/standby, semua data dalam tabel akan hilang. Kami menyarankan Anda untuk segera bermigrasi ke InnoDB.
RocksDB mesin
RocksDB adalah penyimpanan KV (key-value) persisten berkinerja tinggi yang sangat populer. TXRocks adalah mesin penyimpanan transaksional yang dikembangkan oleh tim TXSQL Tencent berdasarkan ini. Mesin penyimpanan transaksional TXRocks memanfaatkan struktur penyimpanan RocksDB LSM Tree, yang tidak hanya mengurangi pemborosan halaman setengah penuh dan fragmentasi pada InnoDB, tetapi juga dapat menggunakan penyimpanan format kompak. Oleh karena itu, TXRocks dapat menghemat ruang penyimpanan hingga setengah atau lebih dibandingkan dengan InnoDB sambil mempertahankan kinerja yang mendekati InnoDB, sehingga lebih cocok untuk bisnis yang membutuhkan kinerja baca/tulis transaksional dan memiliki volume penyimpanan data yang besar.
Lebih menghemat ruang penyimpanan
Dibandingkan dengan struktur indeks B+Tree yang digunakan InnoDB, LSM Tree dapat menghemat ruang penyimpanan yang cukup signifikan.
Amplifikasi penulisan lebih rendah
InnoDB menggunakan metode modifikasi In-Place, di mana bahkan mengubah satu baris data pun mungkin memerlukan flush satu halaman penuh, menyebabkan amplifikasi penulisan dan penulisan acak yang tinggi. RocksDB menggunakan pendekatan Append-Only, sehingga memiliki amplifikasi penulisan lebih rendah dibandingkan.
LibraDB mesin
LibraDB adalah mesin analisis baca-saja, fitur baru yang didukung oleh TencentDB for MySQL. Fitur ini disediakan berdasarkan instance baca-saja. Desain mesin pluggable-nya memungkinkan pembuatan dan penghancuran yang fleksibel, sekaligus menyediakan kemampuan pemrosesan data skala besar dan analisis kompleks real-time yang efisien bagi pengguna. LibraDB terutama melayani kueri analitis yang efisien, berfungsi sebagai komponen analisis baca-saja yang diperluas untuk memproses SQL kompleks secara real-time dan berkinerja tinggi. Dengan memanfaatkan kemampuan penyimpanan kolom LibraDB, mesin eksekusi paralel tervektorisasi, serta optimizer yang diperluas melalui eksekusi paralel terdistribusi, pelanggan dapat dengan mudah mengalami kemampuan analisis efisien secara in-situ dalam database. Selain itu, penyimpanan kolom LibraDB telah dioptimalkan secara khusus untuk perubahan QPS tinggi dan ACID transaksi, menjamin real-time dan konsistensi data kueri.
Komputasi Paralel Skala Besar MPP
Mendukung arsitektur MPP (Massively Parallel Processing), yang dapat meningkatkan kinerja pemrosesan data dengan mendistribusikan beban kerja ke beberapa node.
Mesin Eksekusi Tervektorisasi
Dalam mesin LibraDB, mode eksekusi tervektorisasi diimplementasikan. Dengan memproses data kolom dalam memori, satu batch diproses dalam satu panggilan instruksi SIMD, mengurangi jumlah panggilan fungsi dan menurunkan cache miss.
Mendukung penyimpanan kolom dalam skenario perubahan berkecepatan tinggi
LibraDB mesin, melalui optimasi dan dukungan di lapisan penyimpanan, dapat memenuhi kebutuhan konsistensi data pengguna dalam perubahan data pada skenario konkurensi tinggi, menghindari keterlambatan analisis akibat penundaan data yang disebabkan oleh perubahan data yang sering pada instance baca/tulis.
Menentukan Kemampuan Pemuatan Data
LibraDB mesin mendukung kemampuan menentukan pemuatan objek. Dapat diatur melalui pengaturan konsol pemuatan data atau menentukan objek LibraDB yang perlu dimuat melalui perintah SQL baris perintah.
Versi dan Arsitektur yang Didukung oleh Setiap Mesin
|
InnoDB Engine | MySQL 5.6、5.7、8.0 | Node tunggal, node ganda, node tiga, edisi cloud disk |
RocksDB mesin | MySQL 5.7、8.0 | Node ganda |
LibraDB mesin | MySQL 5.7、8.0 | Node ganda, node tiga |