Окружающая среда: winxpsp2, mysql5.0.18, таблица mysqlodbc3.51driver использует двигатель Myisam. Access2003
Разные места:
1. При вставке данных MySQL должен попытаться использовать операторы InserTinto, чтобы избежать использования Rs.AddNew. Если вы хотите его использовать, вы должны установить conn.cursorlocation = 3 сначала. В противном случае, обязательно будет сообщена ошибка. Я обнаружил, что использование вставки примерно в 3 раза быстрее, чем добавление. Кроме того, если вы используете Rs.AddNew при обновлении, вы не можете сразу получить значение RS («ID») в доступе.
2. Сравнение с доступом:
Для той же структуры таблицы, когда вставил 20 000 фрагментов данных, MySQL был распущен в течение 7,5 секунд, и если вы используете Rs.Addnew, это займет 24 секунды! В доступе он был преобразован в течение 19,8 секунды с вставкой, но Rs.Addnew трансформировался только в течение 2,8 секунды!
Сравнение запросов: Запрос доступа 40 Вт был оцифрован в течение 12 секунд, а MySQL составлял 14 секунд, что было немного медленнее.
Резюме: В целом, скорость вставления доступа примерно в три раза быстрее, чем MySQL. При запросе данных, если объем данных является относительно небольшим, доступ примерно в 2 раза быстрее, чем MySQL. Однако, когда объем данных большой, скорость запроса MySQL не сильно меняется, но доступ значительно уменьшается.
Конечно, MySQL должен быть быстрее, чем доступ. Я предполагаю, что проблема заключается в его драйвере ODBC, и драйвер доступа использует OLE. Microsoft сделала для этого много оптимизации, поэтому в этом тесте MySQL был обижен! Что касается успеваемости, я не проверял ее, но я думаю, что доступ должен быть намного хуже, чем MySQL.
Если вы хотите использовать
Rs.PageCount
rs. pageSize
rs.absolutepage
Rs.recordCount
Для такого свойства вы должны сначала conn.cursorlocation = 3
В противном случае все вышеперечисленные атрибуты не могут быть использованы.
Кроме того, чтобы предотвратить искаженную код и вставить китайские ошибки, вы должны сразу после Conn.open: conn.execute ("setNames'GB2312 '")
В противном случае, определенно будут ошибки в вставке, и искаженная кода не будет обсуждаться.
Метод соединения:
'Подключиться с системной DNS:
strconnection = "dsn = mysql; option = 16384; driver = {mysqlodbc3.51driver}; server = 127.0.0.1; uid = root; pwd = 67918; database = test"
'Подключитесь непосредственно с струнами:
'strconnection = "Driver = {mysqlodbc3.51driver}; server = localhost; port = 3306; option = 0; socket =; stmt =; database = test; uid = root; pwd = 67918; опция = 16384"
setConn = server.createObject ("adodb.connection")
conn.cursorlocation = 3
Conn.OpenStrConnection