2009-09-09 35 views

Trả lời

7

Mở kết nối chỉ một lần. Việc mở và đóng kết nối cũng mất thời gian. Và như bạn đã nói, PHP closes open connections at the end of the runtime automatically.

Vì vậy, chỉ cần gọi mysql_connect bất cứ khi nào bạn cần kết nối và để PHP đóng nó ở cuối. mysql_connect kiểm tra các kết nối hiện có, do đó bạn không cần phải lo lắng rằng việc gọi mysql_connect với cùng các thông số sẽ mở ra một kết nối mới mỗi lần. Bạn cũng có thể sử dụng persistent connections có thể được sử dụng cho nhiều hơn là chỉ thực thi một tập lệnh.

0

Có thể tốt hơn nếu sử dụng kết nối liên tục hoặc một nhóm kết nối.

0

Thực tiễn tốt là đóng các kết nối bạn mở, dọn dẹp khi bạn đi cùng.

Cho dù bạn muốn mở và đóng một cho mỗi truy vấn sẽ phụ thuộc vào ứng dụng của bạn thực sự. Nếu nó chỉ tương tác rất ít với cơ sở dữ liệu, thì tốt nhất là nên làm theo cách này. Hoặc bạn có thể muốn giữ một nhóm các kết nối mở để sử dụng cho tất cả, chỉ mở một kết nối mới khi tất cả các kết nối khác hiện đang được sử dụng.

1

Từ những gì tôi có trải nghiệm tốt hơn là hãy để kết nối mở. Nhưng điều này phụ thuộc vào hành vi của ứng dụng của bạn. Nếu bạn đang thực hiện số lượng lớn các tính toán hoặc kết nối các dịch vụ bên ngoài có thể mất chút thời gian để hoàn thành, thì tốt hơn là đóng kết nối và mở lại sau khi bạn hoàn thành phần tốn thời gian. Nếu bạn không có số lượng lớn khách truy cập nơi bạn có thể đạt đến giới hạn số lượng kết nối sql thì hãy để kết nối mở ra mọi lúc. Phải mất một thời gian để mở lại.

0

Kết nối với cơ sở dữ liệu của bạn một lần, trong khi khởi tạo tập lệnh; giữ cho kết nối mở trong khi thực thi tập lệnh của bạn và gửi thêm các truy vấn thông qua nó.

Ở trên là một kịch bản sử dụng điển hình, nơi bạn có một tập lệnh PHP ngắn (có thể trên máy chủ web) thực hiện nhiều truy vấn SQL. Trừ khi tập lệnh của bạn chạy lâu hơn vài giờ, đừng lo lắng về việc đóng kết nối giữa các truy vấn. Mỗi lần bạn kết nối với máy chủ SQL, cả tập lệnh PHP và máy chủ cần phải trải qua một cuộc đàm phán phức tạp (tương đối): thiết lập kết nối qua mạng, kiểm tra xem cả hai bên có muốn nói MySQL hay không, hãy kiểm tra xem tập lệnh có quyền kết nối, v.v. Giữ kết nối db lên, nó nhanh hơn và hiệu quả hơn nhiều.

5

Nó không thực sự quan trọng. Nếu kịch bản PHP của bạn sẽ đóng kết nối cho bạn ở phần cuối của tập lệnh thì không có nhiều điểm tự làm.

Lý do duy nhất bạn muốn đặt mã bổ sung đó trong tập lệnh để đóng kết nối sau khi bạn đã thực hiện tất cả các truy vấn của mình là nếu bạn muốn giải phóng bộ nhớ nhỏ, ví dụ: kịch bản của bạn đã được bộ nhớ đói bằng cách sử dụng các thư viện như GD2.

Đóng kết nối sau mỗi truy vấn và mở một kết nối khác để thực hiện truy vấn khác Bộ nhớ bị đói và lãng phí rất nhiều thời gian. Tất cả trong tất cả, đừng bận tâm thực sự!

2

Để kết nối mở, nếu tập lệnh của bạn sử dụng kết nối ngẫu nhiên. Nếu có một nhóm công việc đang sử dụng kết nối với khoảng thời gian nhất định thì bạn có thể đóng kết nối sau mỗi công việc nhóm.

Các vấn đề liên quan