Truy vấn đơn MySQL nhiều lõi

hoa lan

2008-10-30 01. 55. 40 UTC

liên kết cố định

Xin chào,

Tôi có một ứng dụng thực hiện liên tiếp một số truy vấn phức tạp
chống lại máy chủ MySQL. Thông thường có rất ít hoặc không có hoạt động nào khác
trên máy chủ vào thời điểm đó và ứng dụng của tôi không phải là ứng dụng web, vì vậy có
chỉ một phiên bản hoặc luồng của nó chạy tại một thời điểm nhất định

Máy chủ MySQL là một máy khá mới, có tám lõi xử lý
tổng cộng (2 x lõi tứ)

Để tìm cách cải thiện hiệu suất của ứng dụng, một
trong số những điều tôi nhận thấy là dường như chỉ một trong số tám lõi CPU của tôi
được tải đáng kể trên nó trong khi ứng dụng đang chạy. Nó
Tôi luôn giả định rằng một máy chủ cơ sở dữ liệu phải được sử dụng
tất cả các CPU theo ý của nó để thực hiện một truy vấn. Tuy nhiên sau
duyệt qua tài liệu MySQL, tôi thấy rất nhiều tài liệu tham khảo
đề xuất một truy vấn thực thi trên một luồng và ít thông tin về cách
các luồng hoặc CPU bổ sung ảnh hưởng đến một truy vấn

Điều gì đang thực sự xảy ra ở đây -- có thực sự là trường hợp chỉ MySQL
sử dụng một chủ đề cho mỗi truy vấn? . Hoặc có tôi
đã định cấu hình sai theo một cách nào đó đang hạn chế khả năng của tôi để thực hiện
lợi thế của phần cứng của tôi?

Thanks,

thẳng thắn

toby

2008-10-30 15. 54. 42 UTC

liên kết cố định


Xin chào,
Tôi có một ứng dụng thực hiện liên tiếp một số truy vấn phức tạp
chống lại máy chủ MySQL. Thông thường có rất ít hoặc không có hoạt động nào khác
trên máy chủ vào thời điểm đó và ứng dụng của tôi không phải là ứng dụng web, vì vậy có
chỉ một phiên bản hoặc luồng của nó chạy tại một thời điểm nhất định
Máy chủ MySQL là một máy khá mới, có tám lõi xử lý
tổng cộng (2 x lõi tứ)
Để tìm cách cải thiện hiệu suất của ứng dụng, một
trong số những điều tôi nhận thấy là dường như chỉ một trong số tám lõi CPU của tôi
được tải đáng kể trên nó trong khi ứng dụng đang chạy. Nó
Tôi luôn giả định rằng một máy chủ cơ sở dữ liệu phải được sử dụng
tất cả các CPU theo ý của nó để thực hiện một truy vấn. Tuy nhiên sau
duyệt qua tài liệu MySQL, tôi thấy rất nhiều tài liệu tham khảo
gợi ý một truy vấn thực thi trên một luồng,

Đúng đó AIUI. Một truy vấn sẽ sử dụng một CPU. Tuy nhiên bạn
có thể có nhiều kết nối chạy truy vấn đồng thời (đây là
ngách kiến ​​trúc truyền thống của MySQL - chẳng hạn như máy chủ web). Nếu
truy vấn của bạn là độc lập, sau đó bạn có thể dễ dàng rẽ nhánh nhiều khách hàng
gửi chúng đồng thời

Domas Mituzas đã thực hiện một số thao tác hack trên máy khách đa luồng, để tăng tốc
một trường hợp đặc biệt của các phần chèn số lượng lớn, nhưng chỉ đơn giản là rẽ nhánh ứng dụng khách tiêu chuẩn
nên là đủ. http. // chết tiệt. lt/2008/05/26/insert-speed-paramy-auto-inc/


và ít về cách
các luồng hoặc CPU bổ sung ảnh hưởng đến một truy vấn
Điều gì đang thực sự xảy ra ở đây
Thanks,
thẳng thắn

Tính năng truy vấn song song đàn hồi hỗ trợ hai công cụ song song. truy vấn song song đàn hồi một nút và truy vấn song song đàn hồi nhiều nút. Truy vấn song song đàn hồi một nút tương đương với tính năng truy vấn song song ban đầu. Truy vấn song song đàn hồi nhiều nút hỗ trợ lập lịch thích ứng trên các nút trong một cụm

PolarDB cho MySQL 8. 0. 1 chỉ hỗ trợ truy vấn song song đàn hồi một nút. Phân đoạn dữ liệu được phân phối cho các luồng khác nhau ở lớp lưu trữ. Các luồng này chạy song song và trả kết quả về luồng dẫn. Sau đó, luồng dẫn hợp nhất các kết quả và trả về kết quả cuối cùng cho người dùng. Bằng cách này, hiệu quả truy vấn có thể được cải thiện.

PolarDB cho MySQL 8. 0. 2 hỗ trợ cả truy vấn song song đàn hồi đơn nút và truy vấn song song đàn hồi đa nút. Cái sau tăng cường đáng kể khả năng tăng tốc tuyến tính và cung cấp tính toán song song phân tán đa nút. Tối ưu hóa dựa trên chi phí làm cho các kế hoạch thực hiện linh hoạt và song song. Điều này giải quyết các vấn đề về hiệu suất của nhà lãnh đạo và tải không cân bằng đối với công nhân xảy ra trong truy vấn song song đàn hồi một nút. Nó cũng khắc phục các tắc nghẽn CPU, bộ nhớ và I/O của một nút duy nhất. Chế độ xem tài nguyên đa nút và lập lịch trình thích ứng của các tác vụ tính toán song song giúp tăng cường đáng kể khả năng tính toán song song và giảm độ trễ truy vấn, cân bằng tải tài nguyên của các nút và cải thiện việc sử dụng tài nguyên tổng thể của cụm.

Trước tình trạng sử dụng CPU thấp và không đồng đều của các cụm, tính năng truy vấn song song linh hoạt khám phá đầy đủ khả năng xử lý song song của CPU đa lõi. Hình sau đây minh họa một cụm PolarDB cho MySQL Phiên bản cụm sử dụng CPU 8 nhân và bộ nhớ 32 GB (dành riêng).

điều kiện tiên quyết

Một cụm PolarDB cho MySQL 8. 0 có phiên bản sửa đổi phải đáp ứng các yêu cầu sau.

  • Truy vấn song song đàn hồi một nút. số 8. 0. 1. 0. 5 hoặc muộn hơn
  • Truy vấn song song đàn hồi một nút. số 8. 0. 2. 1. 4. 1 hoặc muộn hơn
  • Truy vấn song song đàn hồi nhiều nút. số 8. 0. 2. 2. 6 hoặc muộn hơn

Để biết thông tin về cách xem phiên bản cụm, hãy xem

kịch bản

Tính năng truy vấn song song đàn hồi có thể áp dụng cho hầu hết các câu lệnh CHỌN, chẳng hạn như truy vấn trên các bảng lớn, truy vấn nhiều bảng sử dụng câu lệnh THAM GIA và truy vấn trên một lượng lớn dữ liệu. Tính năng này không có lợi cho các truy vấn cực ngắn. Các phương thức song song đa dạng làm cho tính năng phù hợp với nhiều tình huống

  • Truy vấn phân tích trên lượng dữ liệu khổng lồ

    Nếu có lượng dữ liệu vừa hoặc lớn, các câu lệnh SQL cho các truy vấn phân tích thường phức tạp và tốn thời gian. Bạn có thể bật tính năng truy vấn song song đàn hồi để giảm tuyến tính thời gian phản hồi

  • Tải tài nguyên không cân bằng

    Khả năng cân bằng tải của PolarProxy có thể đảm bảo rằng số lượng kết nối tương tự được tạo cho các nút trong một cụm. Tuy nhiên, do độ phức tạp của tính toán trong các truy vấn và sự khác biệt trong việc sử dụng tài nguyên, các kết nối dựa trên cân bằng tải không thể tránh hoàn toàn sự mất cân bằng tải giữa các nút. Giống như các cơ sở dữ liệu phân tán khác, các nút điểm phát sóng có tác động tiêu cực đến PolarDB

    1. Nếu nút chỉ đọc điểm phát sóng gây ra truy vấn chậm, thì nút chính có thể không xóa nhật ký hoàn tác và có thể xảy ra hiện tượng đầy đĩa
    2. Nếu nút chỉ đọc điểm phát sóng gây ra các thao tác áp dụng làm lại chậm, thì nút chính có thể không xóa dữ liệu và thông lượng ghi của nó bị suy giảm

    Truy vấn song song đàn hồi nhiều nút giới thiệu chế độ xem tài nguyên toàn cầu và lập lịch tác vụ thích ứng dựa trên chế độ xem. Dựa trên các giá trị mức sử dụng tài nguyênmối quan hệ dữ liệu của mỗi nút, một số .

  • tính toán đàn hồi

    Độ đàn hồi là một trong những khả năng cốt lõi của PolarDB. Tự động chia tỷ lệ cung cấp độ co giãn rất thân thiện với các truy vấn ngắn. Tuy nhiên, nó không thể áp dụng cho các truy vấn phân tích phức tạp vì một truy vấn đơn lẻ vẫn không thể được tăng tốc bằng cách thêm các nút trong các kịch bản truy vấn lớn. Trên các cụm có bật tính năng truy vấn song song đàn hồi, các nút mới được thu nhỏ sẽ tự động được thêm vào cụm để chia sẻ tài nguyên máy tính và tăng cường tính đàn hồi

  • Kết hợp các dịch vụ trực tuyến và ngoại tuyến

    Phương pháp cách ly hiệu quả nhất là định tuyến giao dịch trực tuyến và dịch vụ phân tích ngoại tuyến tới các bộ nút khác nhau. Tuy nhiên, phương pháp này làm tăng chi phí. Trong nhiều trường hợp, các dịch vụ phân tích giao dịch trực tuyến và ngoại tuyến có giờ cao điểm khác nhau. Một phương pháp kinh tế là chia sẻ tài nguyên cụm giữa giao dịch trực tuyến và dịch vụ phân tích ngoại tuyến và định tuyến chúng đến các điểm cuối cụm khác nhau. Sau khi bật tính năng truy vấn song song linh hoạt, các tài nguyên nhàn rỗi sẽ được phân phối cho dịch vụ phân tích ngoại tuyến trong giờ thấp điểm của dịch vụ giao dịch trực tuyến để giảm chi phí và nâng cao hiệu quả

Cách sử dụng

Lưu ý Cả nút chỉ đọc và nút chính đều hỗ trợ tính năng truy vấn song song đàn hồi. Theo mặc định, tính năng truy vấn song song đàn hồi bị tắt trên nút chính

  • Bật tính năng truy vấn song song đàn hồi

    Trong phần Điểm cuối cụm trên trang Tổng quan của bảng điều khiển, hãy nhấp vào Sửa đổi . Trên trang Định cấu hình nút , đặt DOP và công cụ song song. Để biết thêm thông tin, hãy xem tham số Truy vấn song song trong.

    Chúng tôi khuyên bạn nên sử dụng cài đặt truy vấn song song sau

    • Truy vấn song song đàn hồi nhiều nút hỗ trợ lập lịch tác vụ thích ứng dựa trên chi phí và tải cụm theo thời gian thực. Chúng tôi khuyên bạn nên bật truy vấn song song đàn hồi nhiều nút để tăng tốc tốt hơn .
    • Tăng giá trị của tham số max_parallel_degree theo từng bước nhỏ. Chúng tôi khuyên rằng giá trị không được vượt quá một phần tư tổng số lõi CPU. Ví dụ: sau khi bạn đặt tham số max_parallel_degree thành 2, bạn có thể kiểm tra mức sử dụng CPU vào ngày hôm sau. Nếu mức sử dụng CPU thấp, hãy tăng giá trị của tham số max_parallel_degree. Nếu mức sử dụng CPU cao, không tăng giá trị
    • DOP chỉ định số luồng công nhân tối đa có thể chạy đồng thời trong một nút điện toán cho một truy vấn. Nếu bạn chọn truy vấn song song đàn hồi nhiều nút, thì số luồng công nhân tối đa có thể chạy đồng thời trong một truy vấn là tích của mức độ song song và số lượng nút
    • Khi bạn bật tính năng truy vấn song song đàn hồi, hãy đặt tham số innodb_adaptive_hash_index thành TẮT. Nếu tham số innodb_adaptive_hash_index được đặt thành BẬT, thì hiệu suất của truy vấn song song sẽ bị suy giảm

    Ghi chú

    • Nếu bạn không bật tính năng truy vấn song song đàn hồi trong bảng điều khiển nhưng đặt tham số max_parallel_degree thành giá trị lớn hơn 0, tính năng truy vấn song song đàn hồi sẽ được bật theo mặc định
    • Nếu bạn định cấu hình cài đặt trong bảng điều khiển và cho tham số max_parallel_degree, thì cài đặt trong bảng điều khiển sẽ ưu tiên cài đặt cho tham số. Do đó, chúng tôi khuyên bạn nên bật tính năng truy vấn song song đàn hồi trong bảng điều khiển

  • Vô hiệu hóa tính năng truy vấn song song đàn hồi

    Trong phần Điểm cuối cụm trên trang Tổng quan của bảng điều khiển, hãy nhấp vào Sửa đổi . Trên trang Định cấu hình nút , bạn có thể tắt tính năng truy vấn song song đàn hồi. Để biết thêm thông tin, xem.

    Lưu ý Sau khi bạn tắt tính năng truy vấn song song đàn hồi trong bảng điều khiển, bạn phải xác nhận rằng tham số max_parallel_degree được đặt bằng 0 để đảm bảo rằng tính năng truy vấn song song đàn hồi bị tắt hoàn toàn

  • sử dụng gợi ý

    Bạn có thể tối ưu hóa một câu lệnh SQL riêng lẻ bằng cách sử dụng các gợi ý. Ví dụ: nếu tính năng truy vấn song song đàn hồi bị hệ thống tắt, bạn có thể sử dụng gợi ý để tăng tốc truy vấn SQL chậm được thực thi thường xuyên. Để biết thêm thông tin, xem

  • Sử dụng giá trị ngưỡng để chỉ định liệu trình tối ưu hóa có thể bật tính năng truy vấn song song đàn hồi hay không

    PolarDB cung cấp hai giá trị ngưỡng để chỉ định liệu trình tối ưu hóa có thể bật tính năng truy vấn song song đàn hồi hay không. Tính năng truy vấn song song đàn hồi được bật bởi trình tối ưu hóa nếu các câu lệnh SQL đáp ứng một trong các yêu cầu được chỉ định bởi các giá trị ngưỡng.

    • bản ghi_threshold_for_parallelism

      Nếu số lượng hàng được quét vượt quá giá trị của records_threshold_for_parallelism, trình tối ưu hóa sẽ bật tính năng truy vấn song song đàn hồi. Giá trị mặc định là 10000. Nếu phần lớn các truy vấn của bạn đơn giản và chỉ liên quan đến một lượng nhỏ dữ liệu, chúng tôi khuyên bạn nên đặt giá trị ngưỡng ít nhất là 2000

      Lưu ý Số lượng hàng được quét được ước tính dựa trên thống kê của các bảng. Số này có thể khác với số hàng thực tế

    • cost_threshold_for_parallelism

      Nếu chi phí của các truy vấn tuần tự vượt quá giá trị của tham số cost_threshold_for_parallelism, trình tối ưu hóa sẽ bật tính năng truy vấn song song đàn hồi. Giá trị mặc định là 50000

  • Đặt ngưỡng cho lập lịch tác vụ thích ứng của truy vấn song song co giãn nhiều nút

    PolarDB cung cấp hai ngưỡng để chọn truy vấn song song đàn hồi nhiều nút. Nếu một câu lệnh SQL đáp ứng một trong các điều kiện sau, có thể sử dụng truy vấn song song đàn hồi nhiều nút

    • bản ghi_threshold_for_mpp

      Nếu số lượng hàng được quét của một bảng liên quan đến câu lệnh truy vấn vượt quá ngưỡng này, trình tối ưu hóa sẽ xem xét sử dụng truy vấn song song đàn hồi nhiều nút và lên lịch các tác vụ song song cho nhiều nút để tính toán. Giá trị mặc định gấp N lần giá trị records_threshold_for_parallelism. Giá trị N là số nút trong điểm cuối cụm hiện tại .

    • cost_threshold_for_mpp

      Nếu chi phí thực hiện tuần tự của câu lệnh truy vấn vượt quá ngưỡng này, trình tối ưu hóa sẽ cân nhắc sử dụng truy vấn song song đàn hồi nhiều nút. Giá trị mặc định gấp N lần giá trị cost_threshold_for_parallelism. Giá trị N là số nút trong điểm cuối cụm hiện tại .

Tham số và biến

Bảng 1. Tham số hệ thống Mô tả cấp độ tham số max_parallel_degree Toàn cầu và phiên

DOP tối đa cho một truy vấn riêng lẻ. Tham số này chỉ định số lượng công nhân tối đa được sử dụng để chạy các truy vấn song song

  • Giá trị hợp lệ. 0 đến 1024
  • Giá trị mặc định. 0. Giá trị này chỉ định rằng tính năng truy vấn song song đàn hồi bị tắt

Lưu ý Trình tối ưu hóa PolarDB có thể sử dụng các kế hoạch thực thi truy vấn song song linh hoạt khác nhau để chạy song song truy vấn chính và truy vấn phụ. Nếu trình tối ưu hóa sử dụng cùng một gói, thì số lượng công nhân tối đa không được vượt quá giá trị max_parallel_degree . Tổng số công nhân bằng tổng số công nhân được sử dụng bởi truy vấn chính và công nhân được sử dụng bởi truy vấn phụ.

parallel_degree_policy GlobalChỉ định chính sách DOP cho một truy vấn riêng lẻ. Giá trị hợp lệ.
  • ____0_______. PolarDB đặt DOP thành cùng một giá trị như max_parallel_degree, bất kể tải cơ sở dữ liệu, chẳng hạn như mức sử dụng CPU.
  • ____2_______. PolarDB bật hoặc tắt tính năng truy vấn song song linh hoạt dựa trên tải cơ sở dữ liệu, chẳng hạn như mức sử dụng CPU và chọn DOP dựa trên chi phí truy vấn.
  • REPLICA_AUTO. Chỉ các nút chỉ đọc mới xác định có bật tính năng truy vấn song song linh hoạt hay không dựa trên tải cơ sở dữ liệu, chẳng hạn như mức sử dụng CPU và chọn DOP dựa trên chi phí truy vấn. Nút chính không thực hiện truy vấn song song đàn hồi

Lưu ý Để biết thêm thông tin về chính sách DOP, hãy xem

parallel_workers_policy phiên

Chính sách truy vấn song song đàn hồi. Giá trị hợp lệ

  • ĐỊA PHƯƠNG. truy vấn song song đàn hồi một nút
  • TỰ ĐỘNG. Tính năng truy vấn song song đàn hồi được bật. Lập lịch tác vụ dựa trên tải thời gian thực của các nút trong cụm. Nếu tài nguyên máy tính của một nút không đủ, có thể thử tài nguyên nhàn rỗi của các nút khác trong cụm. Truy vấn song song đàn hồi nhiều nút được bật khi chi phí truy vấn vượt quá ngưỡng đã chỉ định
  • MULTI_NODE. buộc truy vấn song song đàn hồi nhiều nút. DOP tối đa tăng theo số lượng nút. Giá trị này phù hợp với các truy vấn phân tích trên một lượng lớn dữ liệu

records_threshold_for_parallelism Phiên

Nếu số lượng hàng được quét vượt quá giá trị của records_threshold_for_parallelism, trình tối ưu hóa sẽ bật tính năng truy vấn song song đàn hồi

  • Giá trị hợp lệ. 0 đến 18446744073709551615
  • Giá trị mặc định. 10000

Lưu ý Nếu phần lớn các truy vấn của bạn đơn giản và chỉ liên quan đến một lượng nhỏ dữ liệu, chúng tôi khuyên bạn nên đặt giá trị ngưỡng ít nhất là 2000

cost_threshold_for_parallelism Phiên

Nếu chi phí của các truy vấn tuần tự vượt quá giá trị của tham số cost_threshold_for_parallelism, trình tối ưu hóa sẽ bật tính năng truy vấn song song đàn hồi

  • Giá trị hợp lệ. 0 đến 18446744073709551615
  • Giá trị mặc định. 50000
records_threshold_for_mpp phiên

Nếu số lượng hàng được quét của bảng liên quan đến câu lệnh truy vấn vượt quá ngưỡng này, trình tối ưu hóa sẽ xem xét sử dụng truy vấn song song đàn hồi nhiều nút

  • Giá trị hợp lệ. 0 đến 18446744073709551615
  • Giá trị mặc định. 0, biểu thị N lần giá trị bản ghi_threshold_for_parallelism. Giá trị N là số nút trong cụm hiện tại .
cost_threshold_for_mpp phiên

Nếu chi phí thực hiện tuần tự của câu lệnh truy vấn vượt quá ngưỡng này, trình tối ưu hóa sẽ xem xét sử dụng truy vấn song song đàn hồi nhiều nút

  • Giá trị hợp lệ. 0 đến 18446744073709551615
  • Giá trị mặc định. 0, biểu thị N lần giá trị cost_threshold_for_parallelism. Giá trị N là số nút trong cụm hiện tại .
Bảng 2. Biến trạng thái Biến trạng tháiLevelDescription Parallel_workers_created Toàn cầu và phiênSố lượng công nhân song song có . Thu thập_bản ghi Toàn cầu và phiên Tổng số bản ghi được thu thập. PQ_refused_over_total_workers Toàn cầu và phiênSố lượng truy vấn không được thực hiện song song do giới hạn về tổng số công nhân. PQ_refused_over_max_queuing_time Toàn cầu và phiênSố lượng truy vấn không được thực hiện song song do hết thời gian chờ của hàng đợi truy vấn song song. Total_running_parallel_workers Toàn cầuSố lượng công nhân song song đang chạy.

Số liệu hiệu suất

Các kiểm tra sau sử dụng 100 GB dữ liệu được tạo dựa trên TPC Benchmark H (TPC-H) để kiểm tra hiệu suất của PolarDB dành cho MySQL 8.0 cluster. In the test, the PolarDB có 4 nút sử dụng CPU 32 nhân và bộ nhớ 256 GB ( Dùng . Đối với truy vấn song song đàn hồi một nút, tham số ). For single-node elastic parallel query, the max_parallel_degree được đặt thành 32 và 0. So sánh dữ liệu hiệu suất cho truy vấn tuần tự, truy vấn song song đàn hồi một nút với DOP là 32 và truy vấn song song đàn hồi nhiều nút với DOP là 128 và bốn nút. Để biết thêm thông tin, xem.

Kết quả kiểm tra cho thấy 100% truy vấn SQL trong TPC-H được tăng tốc. Tốc độ truy vấn trung bình nhanh hơn 17 lần và nhanh hơn tối đa 56 lần

Khi bật truy vấn song song đàn hồi nhiều nút, tốc độ truy vấn trung bình nhanh hơn 59 lần và nhanh hơn tối đa 159 lần .

Lưu ý Trong ví dụ này, một bài kiểm tra dựa trên điểm chuẩn TPC-H được triển khai, nhưng nó không đáp ứng tất cả các yêu cầu của bài kiểm tra điểm chuẩn TPC-H. Do đó, kết quả kiểm tra có thể không khớp với kết quả kiểm tra điểm chuẩn TPC-H đã công bố

Xem kế hoạch thực hiện truy vấn song song đàn hồi

Để biết thêm thông tin về cách thực thi câu lệnh GIẢI THÍCH để xem thông tin truy vấn song song đàn hồi trong các kế hoạch thực hiện, hãy xem

Điều kiện

  • Quét song song

    Trong quét song song, công nhân quét song song dữ liệu của một bảng. Mỗi công nhân tạo ra một phần kết quả và trả lại kết quả một phần cho chuỗi chỉ huy. Chuỗi dẫn thu thập kết quả bằng cách sử dụng nút thu thập và trả về kết quả cuối cùng cho phía máy khách

  • Tham gia song song trên nhiều bảng

    Nếu tính năng truy vấn song song linh hoạt được bật, thì thao tác nối nhiều bảng hoàn chỉnh sẽ được gửi tới công nhân để xử lý song song. Trình tối ưu hóa PolarDB chọn bảng tối ưu để quét song song và không thực hiện quét song song cho bất kỳ bảng nào khác. Mỗi công nhân tạo ra một phần kết quả và trả lại kết quả một phần cho chuỗi chỉ huy. Chuỗi dẫn thu thập kết quả bằng cách sử dụng nút thu thập và trả về kết quả cuối cùng cho phía máy khách.

  • sắp xếp song song

    Trình tối ưu hóa PolarDB gửi thao tác ORDER BY tới tất cả các công nhân để sắp xếp song song. Mỗi công nhân tạo ra một phần kết quả. Chuỗi dẫn tập hợp, hợp nhất và sắp xếp tất cả các kết quả từng phần bằng cách sử dụng nút hợp nhất thu thập và trả về kết quả sắp xếp cuối cùng cho phía máy khách.

  • Nhóm song song

    Trình tối ưu hóa PolarDB gửi thao tác NHÓM THEO cho tất cả nhân viên để nhóm song song. Mỗi worker thực hiện thao tác GROUP BY trên một phần dữ liệu. Mỗi công nhân tạo ra một phần kết quả của NHÓM THEO. Chủ đề của nhà lãnh đạo thu thập kết quả từ tất cả các công nhân bằng cách sử dụng nút thu thập. Trình tối ưu hóa PolarDB kiểm tra xem có thực hiện lại thao tác GROUP BY trong chuỗi dẫn đầu hay không dựa trên kế hoạch truy vấn. Ví dụ: nếu quét chỉ mục lỏng lẻo được sử dụng để thực thi câu lệnh GROUP BY, chuỗi dẫn đầu không thực hiện thao tác GROUP BY. Nếu chức năng quét chỉ mục lỏng lẻo không được sử dụng, luồng dẫn sẽ thực hiện thao tác NHÓM THEO và trả về kết quả cuối cùng cho phía máy khách.

  • tập hợp song song

    Nếu tính năng truy vấn song song đàn hồi được bật, hàm tổng hợp sẽ được gửi tới tất cả các công nhân song song để tổng hợp song song. Trình tối ưu hóa xác định xem có thực hiện thực thi nối tiếp, tổng hợp một pha hay tổng hợp hai pha dựa trên chi phí

    • tổng hợp một pha. Trình tối ưu hóa phân phối hoạt động tổng hợp cho công nhân. Mỗi công nhân chứa tất cả dữ liệu trong các nhóm. Do đó, tính toán tổng hợp giai đoạn hai là không cần thiết. Mỗi công nhân trực tiếp tính toán kết quả tổng hợp cuối cùng của các nhóm để ngăn luồng chỉ huy thực hiện tổng hợp thứ hai
    • tổng hợp hai giai đoạn. Trong giai đoạn đầu tiên, mỗi công nhân tham gia vào truy vấn song song đàn hồi thực hiện tổng hợp. Trong giai đoạn thứ hai, nút hợp nhất thu thập hoặc thu thập trả về kết quả do mỗi công nhân tạo ra cho luồng chỉ huy. Sau đó, luồng chỉ huy tổng hợp kết quả từ tất cả các công nhân để tạo ra kết quả cuối cùng
    • Tổng hợp xáo trộn hai giai đoạn. Trong giai đoạn đầu tiên, mỗi công nhân trong truy vấn song song đàn hồi thực hiện tổng hợp. Trong giai đoạn thứ hai, nút phân vùng lại phân phối kết quả được tạo bởi mỗi công nhân cho nhiều công nhân theo các cột được nhóm. Các công nhân hoàn thành việc tính toán tổng hợp cuối cùng song song. Cuối cùng, kết quả tổng hợp được tóm tắt vào chuỗi dẫn
    Trình tối ưu hóa PolarDB xác định phương pháp tổng hợp cụ thể dựa trên chi phí.

  • Chức năng cửa sổ song song

    Trình tối ưu hóa PolarDB thực hiện tính toán và phân phối các chức năng cửa sổ cho nhân viên để thực hiện song song dựa trên chi phí. Mỗi công nhân tính toán một số dữ liệu. Phương thức phân phối dựa trên khóa của mệnh đề PARTITION BY trong các chức năng của cửa sổ. Nếu các chức năng của cửa sổ không chứa mệnh đề THAM GIA, tính toán nối tiếp được thực hiện. Tuy nhiên, nếu tính toán song song vẫn có thể được thực hiện sau đó, các tác vụ tính toán tiếp theo sẽ được phân phối cho nhiều công nhân để thực hiện dựa trên chi phí để đảm bảo tính song song tối đa.

  • Hỗ trợ truy vấn phụ

    Trong truy vấn song song linh hoạt, bạn có thể sử dụng một trong các chính sách sau để chạy truy vấn phụ

    • Thực hiện tuần tự trong chuỗi dẫn

      Nếu các truy vấn con không hỗ trợ xử lý song song, thì các truy vấn con trong luồng dẫn đầu được thực hiện theo thứ tự. Ví dụ: nếu hai bảng được nối bằng cách sử dụng mệnh đề THAM GIA tham chiếu đến các hàm do người dùng xác định (UDF), các truy vấn con được thực hiện theo thứ tự

    • Thực thi song song trong chuỗi dẫn đầu (một nhóm công nhân khác được sử dụng)

      Sau khi kế hoạch truy vấn song song đàn hồi được tạo, nếu kế hoạch thực hiện của công nhân tham chiếu các truy vấn phụ tương quan, thì công nhân sẽ chạy các truy vấn phụ tương quan

      MySQL có thể sử dụng nhiều lõi không?

      1. 7. Liệu MySQL 8. 0 có hoạt động với bộ xử lý đa lõi không? . MySQL hoàn toàn đa luồng và sử dụng tất cả các CPU được cung cấp cho nó .

      Một quy trình luồng đơn có thể chạy trên nhiều lõi không?

      Một bộ hướng dẫn cho một luồng phần mềm có thể chạy trên nhiều lõi, nhưng không phải cùng một lúc. Bạn đang trộn các luồng phần mềm (liên quan đến bộ lập lịch hệ điều hành) và các luồng phần cứng hoặc HyperThreading (một tính năng của CPU làm cho một lõi hoạt động giống như hai lõi)

      MySQL là đơn luồng hay đa luồng?

      MySQL hoàn toàn đa luồng và sử dụng tất cả các CPU có sẵn cho nó. Không phải tất cả các CPU đều có sẵn;

      MySQL sử dụng bao nhiêu lõi CPU?

      Lưu câu hỏi này. Hiển thị hoạt động trên bài đăng này