สภาพแวดล้อม: Winxpsp2, MySQL5.0.18, MySQLODBC3.51Driver Table ใช้เครื่องยนต์ 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 วินาทีเท่านั้น!
การเปรียบเทียบการสืบค้น: Access Query 40W ชิ้นถูกแปลงเป็นดิจิทัลเป็นเวลา 12 วินาทีและ MySQL คือ 14 วินาทีซึ่งช้ากว่าเล็กน้อย
สรุป: โดยทั่วไปความเร็วในการแทรกของการเข้าถึงนั้นเร็วกว่า MySQL ประมาณสามเท่า เมื่อสอบถามข้อมูลหากปริมาณข้อมูลค่อนข้างเล็กการเข้าถึงจะเร็วกว่า MySQL ประมาณ 2 เท่า อย่างไรก็ตามเมื่อปริมาณข้อมูลมีขนาดใหญ่ความเร็วในการสืบค้นของ MySQL จะไม่เปลี่ยนแปลงมากนัก แต่การเข้าถึงจะลดลงอย่างมีนัยสำคัญ
แน่นอน MySQL ควรเร็วกว่าการเข้าถึง ฉันเดาว่าปัญหาอยู่ในไดรเวอร์ ODBC และไดรเวอร์ Access ใช้ 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; ตัวเลือก = 16384; driver = {mysqlodbc3.51driver}; เซิร์ฟเวอร์ = 127.0.0.1; uid = root; pwd = 67918; ฐานข้อมูล = ทดสอบ"
'เชื่อมต่อโดยตรงกับสตริง:
'strConnection = "driver = {mysqlodbc3.51driver}; เซิร์ฟเวอร์ = localhost; พอร์ต = 3306; ตัวเลือก = 0; ซ็อกเก็ต =; stmt =; ฐานข้อมูล = ทดสอบ; uid = root; pwd = 67918; ตัวเลือก = 16384"
setConn = server.createObject ("adodb.connection"))
Conn.CursorLocation = 3
conn.openstronnection