Lingkungan: WinXPSP2, MySQL5.0.18, MySQLODBC3.51Driver Table menggunakan mesin Myisam. Access2003
Tempat yang berbeda:
1. Saat memasukkan data, MySQL harus mencoba menggunakan pernyataan InsertInto untuk menghindari penggunaan Rs.addnew. Jika Anda ingin menggunakannya, Anda harus mengatur conn.cursorlocation = 3 terlebih dahulu. Kalau tidak, kesalahan pasti akan dilaporkan. Saya menemukan bahwa menggunakan insert sekitar 3 kali lebih cepat daripada menambahkanNew. Juga, jika Anda menggunakan Rs.addnew saat Anda memperbarui, Anda tidak dapat segera mendapatkan nilai RS ("ID") di Access.
2. Perbandingan dengan akses:
Untuk struktur tabel yang sama, saat memasukkan 20.000 lembar data, MySQL dibubarkan selama 7,5 detik, dan jika Anda menggunakan Rs.addnew, itu akan memakan waktu 24 detik! Dalam akses, itu diubah selama 19,8 detik dengan insert, tetapi rs.addnew hanya diubah selama 2,8 detik!
Perbandingan kueri: Akses kueri 40W potongan didigitalkan selama 12 detik, dan MySQL adalah 14 detik, yang sedikit lebih lambat.
Ringkasan: Secara umum, kecepatan akses penyisipan sekitar tiga kali lebih cepat dari MySQL. Saat menanyakan data, jika volume data relatif kecil, akses sekitar 2 kali lebih cepat dari MySQL. Namun, ketika volume data besar, kecepatan kueri MySQL tidak banyak berubah, tetapi aksesnya berkurang secara signifikan.
Tentu saja, MySQL harus lebih cepat daripada akses. Saya kira masalahnya terletak pada driver ODBC -nya, dan driver Access menggunakan OLE. Microsoft telah membuat banyak optimasi untuk itu, jadi dalam tes ini, MySQL dialah! Adapun kinerja konkurensi, saya belum mengujinya, tetapi saya pikir akses harus jauh lebih buruk daripada MySQL.
Jika Anda ingin menggunakan
rs.pagecount
rs.pagesize
rs.absolutepage
rs.recordcount
Untuk properti seperti itu, Anda harus terlebih dahulu conn.cursorlocation = 3
Jika tidak, semua atribut di atas tidak dapat digunakan.
Juga, untuk mencegah kode yang kacau dan memasukkan kesalahan Cina, Anda harus segera setelah Conn.Open: Conn.Execute ("SetNames'GB2312 '")
Kalau tidak, pasti akan ada kesalahan dalam penyisipan, dan kode kacau tidak akan dinegosiasikan.
Metode Koneksi:
'Terhubung dengan DNS Sistem:
strconnection = "dsn = mysql; opsi = 16384; driver = {mysqlodbc3.51driver}; server = 127.0.0.1; uid = root; pwd = 67918; database = test"
'Sambungkan langsung dengan string:
'strconnection = "driver = {mysqlodbc3.51driver}; server = localhost; port = 3306; opsi = 0; socket =; stmt =; database = test; uid = root; pwd = 67918; opsi = 16384"
setConn = server.CreateObject ("adodb.connection")
Conn.CursorLocation = 3
Conn.openstrConnection