2011-02-01 15 views
5

Tôi muốn biết rằng khi đưa ra tùy chọn, xử lý nhanh hơn bằng php hoặc mysql có nhanh hơn không? Ví dụ, cho phép nói rằng tôi muốn nối hai giá trị từ hai cột tôi nên làmCó phải php hoặc sql nhanh hơn cho các hoạt động cơ bản

SELECT col1,col2 FROM table WHERE conditions 

Và sau đó tiếp nhau trong php

hay tôi nên làm

SELECT CONCAT(col1,col2) as concatenated FROM table WHERE conditions 

và sau đó không có để nối?

ví dụ khác sẽ được giới hạn kích thước của chuỗi trở mà có thể được thực hiện trong sql với LEFT hoặc trong php sử dụng substr

Nếu họ là những tốc độ như nhau thì đó là phương pháp ưa thích?

Tôi đang sử dụng phiên bản xampp gần đây trên máy tính Windows 7.

Trả lời

11

Đối với hầu hết các phần, thực hiện các thao tác theo lô trên dữ liệu của bạn sẽ nhanh hơn ở cấp cơ sở dữ liệu. Các công cụ được tối ưu hóa để làm việc với các bộ dữ liệu như thế này, và chúng có thể đồng thời xử lý và truyền dữ liệu (cho các tập kết quả rất lớn).

2
  1. Khi nghi ngờ, điểm chuẩn nó ra
  2. Dựa trên ví dụ của bạn, nó nhanh hơn để làm điều đó chỉ trong một bước trong cơ sở dữ liệu vs 2 bước (cơ sở dữ liệu sau đó php)

Nó muốn được khác nhau nếu bạn so sánh dữ liệu được lưu trữ trong cơ sở dữ liệu so với dữ liệu được lưu trữ ở nơi khác - có lẽ đã có trong bộ nhớ. PHP có thể có một số hàm có thể làm cho nó bằng nhau, nhưng nói chung các cơ sở dữ liệu được tối ưu hóa để làm việc với các kiểu dữ liệu cụ thể và chỉ xử lý một tập lệnh giới hạn, trong khi PHP có thể yêu cầu nhiều tài nguyên hơn, vì nó là một trình thông dịch đa chức năng.

Tác động lớn hơn sẽ xảy ra đối với loại phần cứng được sử dụng; và nếu đó chỉ là một tập hợp dữ liệu nhỏ, nó có thể không quan trọng bằng cả hai cách.

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