Hướng dẫn python mysql connection pool - nhóm kết nối python mysql

Kết nối đơn giản được hỗ trợ có những đặc điểm này:

  • Mô -đun mysql.connector.pooling thực hiện gộp.

  • Một nhóm mở ra một số kết nối và xử lý an toàn chủ đề khi cung cấp kết nối cho người yêu cầu.

  • Kích thước của một nhóm kết nối có thể định cấu hình tại thời điểm tạo hồ bơi. Nó không thể được thay đổi kích thước sau đó.

  • Một nhóm kết nối có thể được đặt tên tại thời điểm tạo hồ bơi. Nếu không có tên nào được đưa ra, một được tạo bằng các tham số kết nối.

  • Tên nhóm kết nối có thể được lấy từ nhóm kết nối hoặc các kết nối thu được từ nó.

  • Có thể có nhiều nhóm kết nối. Điều này cho phép các ứng dụng hỗ trợ nhóm kết nối với các máy chủ MYSQL khác nhau chẳng hạn.

  • Đối với mỗi yêu cầu kết nối, nhóm cung cấp kết nối có sẵn tiếp theo. Không có vòng tròn hoặc thuật toán lập lịch khác được sử dụng. Nếu một hồ bơi đã cạn kiệt, một PoolError sẽ được nâng lên.

  • Có thể cấu hình lại các tham số kết nối được sử dụng bởi một nhóm. Chúng áp dụng cho các kết nối thu được từ hồ bơi sau đó. Cấu hình lại các kết nối riêng lẻ thu được từ nhóm bằng cách gọi phương thức kết nối config[] không được hỗ trợ.

Các ứng dụng có thể được hưởng lợi từ khả năng kết nối bao gồm:

  • Phần mềm trung gian duy trì nhiều kết nối đến nhiều máy chủ MySQL và yêu cầu kết nối có sẵn.

  • Các trang web có thể có nhiều kết nối vĩnh viễn hơn trên mạng cho máy chủ MySQL.permanent connections open to the MySQL server.

Một nhóm kết nối có thể được tạo ra một cách ngầm hoặc rõ ràng.

Để tạo một nhóm kết nối ngầm: Mở kết nối và chỉ định một hoặc nhiều đối số liên quan đến nhóm [pool_name, pool_size]. Ví dụ: Open a connection and specify one or more pool-related arguments [pool_name, pool_size]. For example:

dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnx = mysql.connector.connect[pool_name = "mypool",
                              pool_size = 3,
                              **dbconfig]

Tên nhóm được giới hạn ở các ký tự chữ và số và các ký tự đặc biệt

cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
0,
cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
1,
cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
2,
cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
3 và
cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
4. Tên nhóm phải dài không quá
cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
5 ký tự [mặc định 64].

Kích thước nhóm phải lớn hơn 0 và nhỏ hơn hoặc bằng

cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]
6 [mặc định 32].

Với đối số pool_name hoặc pool_size hiện tại, Trình kết nối/Python tạo ra nhóm mới. Nếu đối số pool_name không được đưa ra, cuộc gọi

dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
0 sẽ tự động tạo tên, được tạo từ bất kỳ ai trong số các đối số kết nối
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
1,
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
2,
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
3 và
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
4 được đưa ra theo thứ tự đó. Nếu đối số pool_size không được đưa ra, kích thước mặc định là 5 kết nối.

Các cuộc gọi tiếp theo đến

dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
0 có tên cùng một kết nối kết nối kết nối kết nối từ nhóm hiện có. Bất kỳ pool_size hoặc các đối số tham số kết nối đều bị bỏ qua, vì vậy các cuộc gọi
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
0 sau đây đều tương đương với cuộc gọi
dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
0 ban đầu được hiển thị trước đó:

cnx = mysql.connector.connect[pool_name = "mypool", pool_size = 3]
cnx = mysql.connector.connect[pool_name = "mypool", **dbconfig]
cnx = mysql.connector.connect[pool_name = "mypool"]

Các kết nối gộp lấy bằng cách gọi

dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]
0 với một đối số liên quan đến nhóm có một lớp
cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
1 [xem Phần & NBSP; 10.4, nhóm gộp.
cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
1 Các đối tượng kết nối gộp tương tự như các đối tượng kết nối
cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
3, với những khác biệt sau:

  • Để phát hành một kết nối gộp lấy từ nhóm kết nối, hãy gọi phương thức

    cnx1 = cnxpool.get_connection[]
    cnx2 = cnxpool.get_connection[]
    4 của nó, giống như đối với bất kỳ kết nối không được giải quyết nào. Tuy nhiên, đối với kết nối gộp,
    cnx1 = cnxpool.get_connection[]
    cnx2 = cnxpool.get_connection[]
    4 không thực sự đóng kết nối mà trả lại cho nhóm và cung cấp cho các yêu cầu kết nối tiếp theo.

  • Một kết nối gộp không thể được cấu hình lại bằng phương pháp config[] của nó. Thay đổi kết nối phải được thực hiện thông qua chính đối tượng nhóm, như được mô tả trong thời gian ngắn.

  • Một kết nối gộp có một thuộc tính pool_name trả về tên nhóm.

Để tạo một nhóm kết nối một cách rõ ràng: Tạo một đối tượng

cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
8 [xem Phần & NBSP; 10.3, nhóm gộp. Create a
cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
8 object [see Section 10.3, “pooling.MySQLConnectionPool Class”]:

dbconfig = {
  "database": "test",
  "user":     "joe"
}

cnxpool = mysql.connector.pooling.MySQLConnectionPool[pool_name = "mypool",
                                                      pool_size = 3,
                                                      **dbconfig]

Để yêu cầu kết nối từ nhóm, hãy sử dụng phương thức

cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]
9 của nó:

cnx1 = cnxpool.get_connection[]
cnx2 = cnxpool.get_connection[]

Khi bạn tạo một nhóm kết nối một cách rõ ràng, có thể sử dụng phương thức

dbconfig = {
  "database": "performance_schema",
  "user":     "admin",
  "password": "password"
}

cnxpool.set_config[**dbconfig]
0 của đối tượng nhóm để cấu hình lại các tham số kết nối nhóm:

dbconfig = {
  "database": "performance_schema",
  "user":     "admin",
  "password": "password"
}

cnxpool.set_config[**dbconfig]

Các kết nối được yêu cầu từ nhóm sau khi thay đổi cấu hình Sử dụng các tham số mới. Các kết nối thu được trước khi thay đổi vẫn không bị ảnh hưởng, nhưng khi chúng được đóng [được trả lại cho nhóm] được mở lại với các tham số mới trước khi được nhóm trả về cho các yêu cầu kết nối tiếp theo.

Bài Viết Liên Quan

Chủ Đề