البيئة: WinXPSP2 ، MySQL5.0.18 ، يستخدم جدول MySQLODBC3.51Driver محرك MYISAM. Access2003
أماكن مختلفة:
1. عند إدخال البيانات ، يجب أن تحاول MySQL استخدام عبارات insertinto لتجنب استخدام Rs.AddNew. إذا كنت ترغب في استخدامه ، فيجب عليك تعيين conn.cursorLocation = 3 أولاً. خلاف ذلك ، سيتم الإبلاغ عن خطأ بالتأكيد. لقد وجدت أن استخدام إدراج أسرع حوالي 3 مرات من AddingNew. أيضًا ، إذا كنت تستخدم Rs.Addnew عند التحديث ، فلا يمكنك الحصول على قيمة RS ("ID") على الفور.
2. مقارنة مع الوصول:
لنفس بنية الجدول ، عند إدخال 20،000 قطعة من البيانات ، تم حل MySQL لمدة 7.5 ثانية ، وإذا كنت تستخدم Rs.Adnew ، فسوف يستغرق الأمر 24 ثانية! في الوصول ، تم تحويله لمدة 19.8 ثانية مع إدراج ، ولكن Rs.Addnew تحولت فقط لمدة 2.8 ثانية!
مقارنة الاستعلام: تم ترقيم Access Query 40W لمدة 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 ؛ orte = 16384 ؛ driver = {mysqlodbc3.51driver} ؛ server = 127.0.0.1 ؛ uid = root ؛ pwd = 67918 ؛ database = test"
الاتصال مباشرة مع الأوتار:
'strconnection = "driver = {mysqlodbc3.51driver} ؛ server = localHost ؛ port = 3306 ؛ ortive = 0 ؛ socket = ؛ stmt = ؛ database = test ؛ uid = root ؛ pwd = 67918 ؛ الخيار = 16384"
setConn = server.createObject ("adodb.connection")
conn.cursorlocation = 3
conn.openstrconnection