Entorno: WinXPSP2, MySQL5.0.18, MySQLODBC3.51driver Table usa el motor Myisam. Access2003
Diferentes lugares:
1. Al insertar datos, MySQL debe intentar usar las declaraciones InsertInto para evitar usar Rs.AddNew. Si desea usarlo, debe configurar Conn.CursorLocation = 3 primero. De lo contrario, definitivamente se informará un error. Descubrí que usar insertar es aproximadamente 3 veces más rápido que agregarnew. Además, si usa Rs.AddNew cuando actualiza, no puede obtener el valor de RS ("ID") en el acceso.
2. Comparación con el acceso:
Para la misma estructura de tabla, al insertar 20,000 datos de datos, MySQL se disolvió durante 7,5 segundos, y si usa Rs.addnew, ¡tomará 24 segundos! En el acceso, se transformó durante 19.8 segundos con inserción, ¡pero Rs.addnew solo se transformó durante 2.8 segundos!
Comparación de consulta: las piezas de consulta de acceso de 40W se digitalizaron durante 12 segundos, y MySQL fue de 14 segundos, lo cual fue un poco más lento.
Resumen: En general, la velocidad de acceso de acceso es aproximadamente tres veces más rápida que MySQL. Al consultar datos, si el volumen de datos es relativamente pequeño, el acceso es aproximadamente 2 veces más rápido que MySQL. Sin embargo, cuando el volumen de datos es grande, la velocidad de consulta de MySQL no cambia mucho, pero el acceso disminuye significativamente.
Por supuesto, MySQL debería ser más rápido que el acceso. Supongo que el problema radica en su controlador ODBC, y el controlador de acceso usa OLE. Microsoft ha hecho muchas optimizaciones para ello, así que en esta prueba, ¡MySQL fue perjudicado! En cuanto al rendimiento de la concurrencia, no lo he probado, pero creo que el acceso debería ser mucho peor que MySQL.
Si quieres usar
Rs.Pagecount
Rs.PageSe
rs.absolutepage
Rs.RecordCount
Para dicha propiedad, primero debe Conn.CursorLocation = 3
De lo contrario, no se pueden usar todos los atributos anteriores.
Además, para evitar el código confuso e insertar errores chinos, debe inmediatamente después de conn.open: conn.execute ("setnames'GB2312 '")
De lo contrario, definitivamente habrá errores en la inserción, y el código confuso no se negociará.
Método de conexión:
'Conéctese con DNS del sistema:
strconnection = "dsn = mysql; opción = 16384; controlador = {mySQLODBC3.51driver}; servidor = 127.0.0.1; uid = root; pwd = 67918; base de datos = prueba"
'Conéctese directamente con cadenas:
'strconnection = "driver = {mysqlodbc3.51driver}; servidor = localhost; puer = 3306; opción = 0; socket =; stmt =; database = test; uid = root; pwd = 67918; opción = 16384"
setconn = server.createObject ("ADODB.Connection")
conn.cursorlocation = 3
conn.openstrconnection