MySQL vs. MongoDB: Perbandingan prestasi dua sistem pangkalan data
Dengan pembangunan Internet dan jumlah data yang semakin meningkat, prestasi dan kebolehskalaan pangkalan data menjadi semakin penting. MySQL dan MongoDB adalah dua sistem pangkalan data yang biasa digunakan. Mereka mempunyai prestasi yang berbeza apabila mengendalikan volum data yang besar dan permintaan serentak yang tinggi. Artikel ini akan membandingkan prestasi MySQL dan MongoDB dan menggambarkan perbezaannya melalui contoh kod.
MySQL ialah pangkalan data hubungan yang terkenal dengan kestabilan dan ciri matangnya. Berikut ialah contoh pernyataan penciptaan jadual MySQL:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT );
Dalam MySQL, pengguna boleh menggunakan sintaks SQL untuk membuat pertanyaan, memasukkan dan mengemas kini data. Berikut ialah contoh pertanyaan:
SELECT * FROM users WHERE age > 30;
MongoDB ialah pangkalan data dokumen yang diutamakan kerana fleksibiliti dan skalabilitinya. Berikut ialah contoh pernyataan penciptaan koleksi MongoDB:
db.createCollection("users");
Dalam MongoDB, data disimpan dalam bentuk dokumen. Pengguna boleh menggunakan bahasa pertanyaan dalam format JSON untuk memanipulasi data. Berikut ialah contoh pernyataan pertanyaan:
db.users.find({ age: { $gt: 30 } });
MySQL dan MongoDB mempunyai ciri yang berbeza dari segi prestasi. MySQL sesuai untuk data hubungan yang kompleks, manakala MongoDB sesuai untuk data separa berstruktur atau tidak berstruktur. Untuk bacaan data berskala besar, MySQL secara amnya berprestasi lebih baik kerana menggunakan teknik pengindeksan dan pengoptimuman untuk mempercepatkan pertanyaan. MongoDB sesuai untuk penulisan dan pertanyaan data dalam jumlah besar kerana ia menggunakan seni bina teragih untuk mencapai kebolehskalaan mendatar.
Untuk menguji prestasi MySQL dan MongoDB, kami mencipta jadual pengguna yang mengandungi 1 juta keping data. Mula-mula, kami melakukan pertanyaan mudah pada jadual ini. Berikut ialah contoh kod untuk MySQL dan MongoDB:
Pernyataan pertanyaan MySQL:
SELECT * FROM users LIMIT 10;
Pernyataan pertanyaan MongoDB:
db.users.find().limit(10);
Dalam eksperimen ini, masa pelaksanaan pertanyaan MySQL ialah 5.12 saat, manakala masa pelaksanaan pertanyaan bagi Mongo6DB ialah 2.76DB. . Ini menunjukkan bahawa MongoDB berprestasi lebih baik sedikit daripada MySQL untuk pertanyaan mudah.
Seterusnya, kami melakukan pertanyaan pengagregatan kompleks pada jadual ini. Berikut ialah contoh kod untuk MySQL dan MongoDB:
Pernyataan pertanyaan pengagregatan MySQL:
SELECT name, AVG(age) FROM users GROUP BY name;
Pernyataan pertanyaan pengagregatan MongoDB:
db.users.aggregate([ { $group: { _id: "$name", avgAge: { $avg: "$age" } } } ]);
Dalam eksperimen ini, masa pelaksanaan pertanyaan MySQL ialah 10.27 saat pertanyaan masa .execution 3 saat MongoDB. Ini menunjukkan bahawa MongoDB berprestasi lebih baik sedikit daripada MySQL dari segi pertanyaan yang kompleks.
Ringkasnya, MySQL dan MongoDB mempunyai prestasi yang berbeza dalam senario penggunaan yang berbeza. MySQL sesuai untuk data hubungan yang kompleks dan operasi membaca data berskala besar, manakala MongoDB sesuai untuk data separa berstruktur atau tidak berstruktur dan operasi penulisan dan pertanyaan data berskala besar. Dalam penggunaan khusus, sistem pangkalan data yang sesuai harus dipilih berdasarkan keperluan sebenar.
Nota tentang contoh kod:
Atas ialah kandungan terperinci MySQL lwn MongoDB: Perbandingan prestasi dua sistem pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!