Ambiente: WinXPSP2, MySQL5.0.18, MySQLODBC3.51Driver Tabela usa o mecanismo Myisam. Access2003
Lugares diferentes:
1. Ao inserir dados, o MySQL deve tentar usar as instruções InsertInto para evitar o uso do Rs.AddNew. Se você quiser usá -lo, defina Conn.CursorLocation = 3 primeiro. Caso contrário, um erro será definitivamente relatado. Descobri que o uso de inserção é cerca de 3 vezes mais rápido que o AdicionarNew. Além disso, se você usar o Rs.AddNew ao atualizar, não poderá obter imediatamente o valor de Rs ("ID") no acesso.
2. Comparação com o acesso:
Para a mesma estrutura de tabela, ao inserir 20.000 dados, o MySQL foi dissolvido por 7,5 segundos e, se você usar o Rs.Addnew, levará 24 segundos! No acesso, foi transformado por 19,8 segundos com inserção, mas o Rs.Addnew se transformou apenas por 2,8 segundos!
Comparação de consulta: as peças de 40W da consulta de acesso foram digitalizadas por 12 segundos e o MySQL foi de 14 segundos, o que foi um pouco mais lento.
Resumo: Em geral, a velocidade de acesso do acesso é cerca de três vezes mais rápida que o MySQL. Ao consultar os dados, se o volume de dados for relativamente pequeno, o acesso será cerca de 2 vezes mais rápido que o MySQL. No entanto, quando o volume de dados é grande, a velocidade de consulta do MySQL não muda muito, mas o acesso diminui significativamente.
Obviamente, o MySQL deve ser mais rápido que o acesso. Eu acho que o problema está no driver ODBC e o driver de acesso usa OLE. A Microsoft fez muitas otimizações para isso; portanto, neste teste, o MySQL foi prejudicado! Quanto ao desempenho da concorrência, não o testei, mas acho que o acesso deve ser muito pior que o MySQL.
Se você quiser usar
Rs.Pagecount
rs.pagesize
rs.absolutePage
Rs.RecordCount
Para tal propriedade, você deve primeiro Conn.CursorLocation = 3
Caso contrário, todos os atributos acima não podem ser usados.
Além disso, a fim de evitar o código ilegal e inserir erros chineses, você deve imediatamente após Conn.Open: Conn.Execute ("SetNames'GB2312 '")
Caso contrário, definitivamente haverá erros na inserção, e o código distorcido não será negociado.
Método de conexão:
'Conecte -se com o System DNS:
strConnection = "dsn = mysql; opção = 16384; driver = {mysqlodbc3.51driver}; server = 127.0.0.1; uid = root; pwd = 67918; database = teste"
'Conecte -se diretamente com strings:
'strConnection = "driver = {mysqlodbc3.51driver}; server = localhost; porta = 3306; opção = 0; soquete =; stmt =; database = test; uid = root; pwd = 67918; opção = 16384"
setConn = server.createObject ("adodb.connection")
Conn.CursorLocation = 3
Conn.openstrConnection