สภาพแวดล้อม: winxp sp2, mysql5.0.18, ตารางไดรเวอร์ mysqlodbc 3.51 ใช้เครื่องมือ myisam เข้าถึง 2003
สถานที่ต่าง ๆ :
1. เมื่อทำการแทรกข้อมูล mysql ควรลองใช้การ insert ในคำสั่ง และหลีกเลี่ยงการใช้ rs.addnew หากจำเป็นต้องใช้ ควรตั้งค่า conn.CursorLocation=3 ก่อน ไม่เช่นนั้นจะรายงานข้อผิดพลาดอย่างแน่นอน และพบแล้ว การใช้ insert นั้นเร็วกว่า addnew ประมาณ 3 เท่า นอกจากนี้ หากคุณใช้ rs.addnew เมื่อคุณ rs.update คุณจะไม่สามารถรับค่า rs (id) ในการเข้าถึงได้ทันที
2. เปรียบเทียบกับการเข้าถึง:
ด้วยโครงสร้างตารางเดียวกัน เมื่อใช้ insert เพื่อแทรกข้อมูล 20,000 ชิ้น MySQL จะใช้เวลา 7.5 วินาที และหากใช้ rs.addnew จะใช้เวลา 24 วินาที! ในการเข้าถึง การใช้ insert ใช้เวลา 19.8 วินาที แต่ rs.addnew ใช้เวลาเพียง 2.8 วินาทีเท่านั้น!
การเปรียบเทียบคำค้นหา: การสืบค้นข้อมูล 400,000 ชิ้นใช้เวลา 12 วินาที และการสืบค้น MySQL ใช้เวลา 14 วินาที ซึ่งช้ากว่าเล็กน้อย
สรุป: โดยทั่วไปแล้ว ความเร็วในการแทรกการเข้าถึงจะเร็วกว่าความเร็วของ mysql ประมาณสามเท่า เมื่อทำการสืบค้นข้อมูล หากปริมาณข้อมูลค่อนข้างน้อย การเข้าถึงจะเร็วกว่า mysql ประมาณ 2 เท่า อย่างไรก็ตาม เมื่อปริมาณข้อมูลมีขนาดใหญ่ ความเร็วในการสืบค้นของ mysql จะไม่เปลี่ยนแปลงมากนัก แต่การเข้าถึงจะลดลงอย่างมาก
แน่นอนว่า mysql ควรจะเร็วกว่าการเข้าถึง ฉันเดาว่าปัญหาอยู่ที่ไดรเวอร์ odbc และไดรเวอร์การเข้าถึงใช้ ole Microsoft ได้ทำการปรับปรุงให้เหมาะสมมากมาย ดังนั้นในการทดสอบนี้ mysql จึงคิดผิด! สำหรับประสิทธิภาพการทำงานพร้อมกัน ฉันยังไม่ได้ทดสอบ แต่ฉันคิดว่าการเข้าถึงน่าจะแย่กว่า mysql มาก
หากคุณต้องการใช้
rs.จำนวนหน้า
rs.ขนาดหน้า
rs.หน้าสัมบูรณ์
rs.recordcount
สำหรับคุณสมบัติดังกล่าว คุณต้อง conn.CursorLocation=3 ก่อน
มิฉะนั้น จะไม่สามารถใช้แอตทริบิวต์ข้างต้นได้
นอกจากนี้ เพื่อป้องกันการแทรกอักขระที่อ่านไม่ออกและข้อผิดพลาดภาษาจีน คุณจะต้องอยู่หลัง conn.open: conn.Execute ทันที (SET NAMES 'gb2312')
มิฉะนั้นข้อผิดพลาดในการแทรกจะเกิดขึ้นอย่างแน่นอนและโค้ดจะอ่านไม่ออก
วิธีการเชื่อมต่อ:
'เชื่อมต่อโดยใช้ DNS ของระบบ:
strconnection=dsn=mysql; OPTION=16384;driver={ไดรเวอร์ mysql odbc 3.51};server=127.0.0.1;uid=root;pwd=67918;ฐานข้อมูล=ทดสอบ
'เชื่อมต่อโดยตรงกับสตริง:
'strconnection=ไดรเวอร์={mysql odbc 3.51; เซิร์ฟเวอร์=localhost; ตัวเลือก=0; ฐานข้อมูล=ทดสอบ;
ตั้งค่า conn=server.createobject (adodb.connection)
conn.CursorLocation=3
conn.การเชื่อมต่อแบบเปิด