Sự khác biệt giữa trình kết nối MySQL và mysql là gì?

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

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,17915

Hiệu suất đọc trình điều khiển JDBC


Mụ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

  1. GIỚI HẠN 1000000
  2. Bộ dữ liệu đầy đủ

Để 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 JDBC

Trong 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 CData

Trì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 ODBC


Mụ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

  1. GIỚI HẠN 1000000
  2. Bộ dữ liệu đầy đủ

Để 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 ODBC

Trong 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 CData

Trình điều khiển bản địa

Cả 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ệu


Ngoà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ận


Trì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. .