MySQL là "Cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới" và cung cấp một cách mạnh mẽ, được sử dụng rộng rãi để lưu trữ và truy cập dữ liệu của bạn. Trên thực tế, nhiều cơ sở dữ liệu tại chỗ và đám mây (như MemSQL và Google Cloud SQL) đã sử dụng giao diện MySQL. Có sẵn một số trình điều khiển mã nguồn mở để kết nối với dữ liệu MySQL của bạn từ các ứng dụng khác Show
Bài viết này so sánh hiệu suất đọc và ghi của Trình kết nối MySQL gốc (JDBC và ODBC)1 và Trình điều khiển JDBC và ODBC của Phần mềm CData cho MySQL2 khi làm việc với các bộ dữ liệu lớn hơn. Chúng tôi chỉ ra cách Trình điều khiển CData có thể đọc các tập dữ liệu lớn nhanh hơn khoảng 20% so với trình điều khiển gốc và ghi 1 triệu hàng nhanh hơn gần 40% so với trình điều khiển gốc Dữ liệuĐể cung cấp một so sánh có thể lặp lại để đọc dữ liệu, chúng tôi đã sao chép các bài đánh giá sách Amazon của Hoa Kỳ từ bộ dữ liệu Đánh giá của khách hàng Amazon3 vào cơ sở dữ liệu MySQL. Dưới đây là thông tin chi tiết về bảng amazon_book_reviews Kích thước bảngSố hàngSố cột9. 7 GB10,534,17915Hiệu suất đọc trình điều khiển JDBCMục tiêu chính của cuộc điều tra này là để so sánh hiệu suất liên quan của trình điều khiển JDBC. Chúng tôi đã làm điều này bằng cách chạy cùng một bộ truy vấn với mỗi trình điều khiển JDBC. Chúng tôi đã sử dụng các mệnh đề GIỚI HẠN để thay đổi kích thước của tập dữ liệu được trả về trong mỗi truy vấn, nhưng chúng tôi đã yêu cầu các cột giống nhau cho mỗi truy vấn Truy vấn cơ sởSELECT marketplace, customer_id, review_id, product_id, product_parent, product_title, product_category, star_rating, helpful_votes, total_votes, vine, verified_purchase, review_headline, review_body, review_date, FROM cdata.amazon_book_reviews; Giới hạn theo truy vấn
Để kiểm tra trình điều khiển, chúng tôi đã kết nối với MySQL bằng ứng dụng Java cơ bản và thực hiện lặp đi lặp lại các truy vấn trên. Các kết quả đã được đọc và lưu trữ trong một biến mới (dựa trên kiểu dữ liệu) cho mỗi cột trong mỗi hàng 1 (1.000.000 hàng)14. 02 (+26%)17. 672 (~10.000.000 hàng)171. 09 (+20. 7%)206. 42 Như có thể thấy trong kết quả, Trình điều khiển CData thường vượt trội so với Trình điều khiển MySQL gốc, phần lớn là do cách Trình điều khiển JDBC CData sử dụng tài nguyên phía máy khách Sử dụng tài nguyên trình điều khiển JDBCTrong khi kiểm tra hiệu suất đọc của các trình điều khiển JDBC, chúng tôi cũng đo mức sử dụng tài nguyên phía máy khách, cụ thể là xem xét bộ nhớ. Các biểu đồ bên dưới được tìm thấy bằng cách chạy một chương trình Java mẫu và sử dụng Java VisualVM để ghi lại mức sử dụng bộ nhớ. Chúng tôi đã sử dụng Java OpenJDK phiên bản 12. 0. 2 với kích thước heap tối đa là 8 Gigabyte Để so sánh này, chúng tôi đã chạy truy vấn cho tập dữ liệu đầy đủ Trình điều khiển CDataTrình điều khiển bản địa** Lưu ý sự thay đổi về tỷ lệ cho đồ thị Heap Trình điều khiển CData trung bình sử dụng khoảng 150 MB trong suốt thời gian chạy. Tuy nhiên, trình điều khiển gốc tiếp tục sử dụng ngày càng nhiều tài nguyên máy khách trong suốt thời gian chạy. Trên thực tế, chúng tôi đã phải đặt kích thước Heap tối đa thành 8 GB để Trình điều khiển MySQL gốc hoàn tất quá trình thực thi. Mặc dù thực tế là trình điều khiển gốc đang sử dụng nhiều tài nguyên hơn đáng kể, nhưng vẫn mất nhiều thời gian hơn để đọc dữ liệu so với trình điều khiển CData JDBC Hiệu suất đọc trình điều khiển ODBCMục tiêu chính của cuộc điều tra này là so sánh hiệu suất liên quan của Trình điều khiển ODBC. Chúng tôi đã làm điều này bằng cách chạy cùng một bộ truy vấn với mỗi Trình điều khiển ODBC. Chúng tôi đã sử dụng các mệnh đề GIỚI HẠN để thay đổi kích thước của tập dữ liệu được trả về trong mỗi truy vấn, nhưng chúng tôi đã yêu cầu các cột giống nhau cho mỗi truy vấn Truy vấn cơ sởSELECT marketplace, customer_id, review_id, product_id, product_parent, product_title, product_category, star_rating, helpful_votes, total_votes, vine, verified_purchase, review_headline, review_body, review_date, FROM cdata.amazon_book_reviews; Giới hạn theo truy vấn
Để kiểm tra trình điều khiển, chúng tôi đã kết nối với MySQL bằng ứng dụng C++ cơ bản và thực hiện lặp đi lặp lại các truy vấn trên. Các kết quả đã được đọc và lưu trữ trong một biến mới (dựa trên kiểu dữ liệu) cho mỗi cột trong mỗi hàng 1 (1.000.000 hàng)14. 95 (+96. 7%)29. 402 (~10.000.000 hàng)177. 51 (+72. 3%)305. 77 Như có thể thấy trong kết quả, Trình điều khiển CData ODBC thường xuyên hoạt động tốt hơn Trình kết nối MySQL/ODBC, phần lớn là do sử dụng tốt hơn các tài nguyên máy khách có sẵn Sử dụng tài nguyên trình điều khiển ODBCTrong khi kiểm tra hiệu suất đọc của trình điều khiển ODBC, chúng tôi cũng đo mức sử dụng tài nguyên phía máy khách, xem xét cụ thể khả năng xử lý và băng thông mạng. Các biểu đồ bên dưới được tìm thấy bằng cách thực thi ứng dụng C++ đơn giản và sử dụng Windows Resource Monitor Để so sánh này, chúng tôi đã chạy truy vấn cho tập dữ liệu đầy đủ Trình điều khiển CDataTrình điều khiển bản địaCả hai trình điều khiển dường như sử dụng 20 - 25% khả năng xử lý có sẵn, với CData sử dụng nhiều hơn một chút. Sự khác biệt lớn hơn là ở băng thông mạng được sử dụng, trong đó Trình điều khiển CData sử dụng khoảng 250Mbps so với 100Mbps mà trình điều khiển gốc sử dụng Thử thách hàng triệuNgoài việc đo hiệu suất đọc, chúng tôi cũng muốn so sánh hiệu suất ghi của các trình điều khiển. Nói tóm lại, Trình điều khiển JDBC CData MySQL có thể ghi 1 triệu hàng nhanh hơn gần 40% so với Trình kết nối MySQL gốc Chúng tôi đã sử dụng một chương trình Java đơn giản để thêm các hàng vào bản sao của bảng amazon_book_reviews được tham chiếu ở trên. 3. Để thử nghiệm, chúng tôi đã chèn dữ liệu vào 100 lô gồm 10.000 hàng Mã mẫu________2 Kết quảSự kết luậnTrình điều khiển CData cung cấp khả năng truy vấn các tập dữ liệu lớn tốt hơn qua trình kết nối gốc, xử lý tập dữ liệu lớn nhất nhanh hơn ít nhất 20% bằng cách sử dụng tốt hơn các tài nguyên máy khách có sẵn Khi nói đến việc chèn dữ liệu, Trình điều khiển CData nổi bật ở khả năng chèn nhanh các bộ dữ liệu lớn. Trình điều khiển CData JDBC có thể chèn 1 triệu hàng trong vòng chưa đầy 80 giây, nhanh hơn gần 40% so với trình kết nối gốc Nhóm kỹ thuật của chúng tôi đã tối ưu hóa công cụ SQL của chúng tôi để chỉ ra rằng khả năng kết nối chỉ bị cản trở bởi lưu lượng truy cập dây và thời gian xử lý của máy chủ Trình kết nối MySQL được sử dụng để làm gì?Trình kết nối MySQL cung cấp khả năng kết nối với máy chủ MySQL cho các chương trình máy khách . API cung cấp quyền truy cập cấp thấp vào tài nguyên MySQL bằng giao thức MySQL cổ điển hoặc Giao thức X.
Trình kết nối MySQL có phải là thư viện hoặc mô-đun không?Trong bài viết này, chúng ta sẽ thảo luận về mô-đun Trình kết nối MySQL của Python, cách cài đặt mô-đun này và một đoạn mã về cách cài đặt. . |