Bắt đầu từ đây? . Kiểm tra đầu Show Trong bài học này, chúng tôi sẽ bao gồm Điều chỉnh hiệu suất SQL là gì?Điều chỉnh SQL là quá trình cải thiện các truy vấn SQL để tăng tốc hiệu suất máy chủ của bạn. Mục đích chung của nó là giảm lượng thời gian người dùng cần để nhận kết quả sau khi đưa ra truy vấn và giảm lượng tài nguyên được sử dụng để xử lý truy vấn. Bài học về truy vấn con đã giới thiệu ý tưởng rằng đôi khi bạn có thể tạo cùng một tập hợp kết quả mong muốn với truy vấn chạy nhanh hơn. Trong bài học này, bạn sẽ học cách xác định thời điểm có thể cải thiện các truy vấn của mình và cách cải thiện chúng Cơ sở dữ liệu là một phần của phần mềm chạy trên máy tính và có các hạn chế giống như tất cả các phần mềm—cơ sở dữ liệu chỉ có thể xử lý lượng thông tin nhiều nhất có thể do phần cứng của nó có khả năng xử lý. Cách để làm cho truy vấn chạy nhanh hơn là giảm số phép tính mà phần mềm (và do đó là phần cứng) phải thực hiện. Để làm điều này, bạn sẽ cần một số hiểu biết về cách SQL thực sự tính toán. Trước tiên, hãy giải quyết một số vấn đề cấp cao sẽ ảnh hưởng đến số lượng phép tính bạn cần thực hiện và do đó ảnh hưởng đến thời gian chạy truy vấn của bạn
Thời gian chạy truy vấn cũng phụ thuộc vào một số thứ mà bạn không thể thực sự kiểm soát liên quan đến chính cơ sở dữ liệu
Hiện tại, hãy bỏ qua những điều bạn không thể kiểm soát và làm những điều bạn có thể Giảm kích thước bảngLọc dữ liệu để chỉ bao gồm các quan sát bạn cần có thể cải thiện đáng kể tốc độ truy vấn. Cách bạn làm điều này sẽ phụ thuộc hoàn toàn vào vấn đề bạn đang cố gắng giải quyết. Ví dụ: nếu bạn có dữ liệu chuỗi thời gian, việc giới hạn trong một cửa sổ thời gian nhỏ có thể giúp truy vấn của bạn chạy nhanh hơn nhiều
Hãy nhớ rằng bạn luôn có thể thực hiện phân tích khám phá trên một tập hợp con dữ liệu, tinh chỉnh công việc của bạn thành truy vấn cuối cùng, sau đó loại bỏ giới hạn và chạy công việc của bạn trên toàn bộ tập dữ liệu. Truy vấn cuối cùng có thể mất nhiều thời gian để chạy, nhưng ít nhất bạn có thể chạy các bước trung gian một cách nhanh chóng Đây là lý do tại sao Chế độ thực thi mệnh đề 4 theo mặc định—100 hàng thường nhiều hơn mức bạn cần để xác định bước tiếp theo trong phân tích của mình và đó là một tập dữ liệu đủ nhỏ để nó sẽ trả về nhanh chóngĐiều đáng chú ý là 4 không hoàn toàn hoạt động theo cách tương tự với tập hợp—việc tổng hợp được thực hiện, sau đó kết quả được giới hạn ở số lượng hàng đã chỉ định. Vì vậy, nếu bạn đang tổng hợp thành một hàng như bên dưới, thì 6 sẽ không làm gì để tăng tốc độ truy vấn của bạn
Nếu bạn muốn giới hạn tập dữ liệu trước khi thực hiện đếm (để tăng tốc mọi thứ), hãy thử thực hiện trong truy vấn con
Ghi chú. Sử dụng 4, điều này sẽ thay đổi đáng kể kết quả của bạn, vì vậy bạn nên sử dụng nó để kiểm tra logic truy vấn chứ không phải để nhận kết quả thực tếNói chung, khi làm việc với các truy vấn con, bạn nên đảm bảo giới hạn lượng dữ liệu bạn đang làm việc ở nơi nó sẽ được thực thi trước tiên. Điều này có nghĩa là đặt 4 vào truy vấn con, không phải truy vấn bên ngoài. Một lần nữa, điều này là để làm cho truy vấn chạy nhanh để bạn có thể kiểm tra—KHÔNG phải để tạo ra kết quả tốtTheo một cách nào đó, đây là phần mở rộng của mẹo trước. Theo cách tương tự, tốt hơn là giảm dữ liệu tại một điểm trong truy vấn được thực hiện sớm, tốt hơn là giảm kích thước bảng trước khi nối chúng. Lấy ví dụ này, kết hợp thông tin về các đội thể thao của trường đại học với danh sách các vận động viên ở các trường đại học khác nhau
Có 26.298 hàng trong 2. Điều đó có nghĩa là 26.298 hàng cần được đánh giá cho phù hợp trong bảng khác. Nhưng nếu bảng 2 đã được tổng hợp trước, bạn có thể giảm số lượng hàng cần đánh giá trong phép nối. Đầu tiên, chúng ta hãy xem tổng hợp
Truy vấn trên trả về 252 kết quả. Vì vậy, bỏ truy vấn đó trong một truy vấn con và sau đó nối với truy vấn đó trong truy vấn bên ngoài sẽ giảm đáng kể chi phí nối
Trong trường hợp cụ thể này, bạn sẽ không nhận thấy sự khác biệt lớn vì 30.000 hàng không quá khó để cơ sở dữ liệu xử lý. Nhưng nếu bạn đang nói về hàng trăm nghìn hàng trở lên, bạn sẽ thấy sự cải thiện rõ rệt bằng cách tổng hợp trước khi tham gia. Khi bạn làm điều này, hãy đảm bảo rằng những gì bạn đang làm nhất quán về mặt logic—bạn nên lo lắng về độ chính xác của công việc trước khi lo lắng về tốc độ chạy GIẢI THÍCHBạn có thể thêm 4 vào đầu bất kỳ truy vấn (đang hoạt động) nào để biết được sẽ mất bao lâu. Nó không hoàn toàn chính xác, nhưng nó là một công cụ hữu ích. Hãy thử chạy cái này
Bạn sẽ nhận được kết quả này. Nó được gọi là Kế hoạch truy vấn và nó hiển thị thứ tự mà truy vấn của bạn sẽ được thực hiện Mục ở dưới cùng của danh sách được thực hiện đầu tiên. Vì vậy, điều này cho thấy rằng mệnh đề 5 giới hạn phạm vi ngày sẽ được thực hiện trước. Sau đó, cơ sở dữ liệu sẽ quét 600 hàng (đây là con số gần đúng). Bạn có thể thấy chi phí được liệt kê bên cạnh số hàng—số càng cao nghĩa là thời gian chạy càng lâu. Bạn nên sử dụng điều này nhiều hơn như một tài liệu tham khảo hơn là một thước đo tuyệt đối. Để làm rõ, điều này hữu ích nhất nếu bạn chạy 4 trên một truy vấn, sửa đổi các bước tốn kém, sau đó chạy lại 4 để xem chi phí có giảm không. Cuối cùng, mệnh đề 4 được thực hiện sau cùng và thực sự rẻ để chạy (24. 65 so với 147. 87 cho mệnh đề 5)
%s trong SQL Python là gì?Chúng tôi cần cung cấp các giá trị trong trình giữ chỗ ( %s ) trước khi thực hiện truy vấn. Truyền các biến Python ở vị trí của trình giữ chỗ khi chúng tôi thực hiện truy vấn. Chúng ta cần truyền hai đối số sau cho một con trỏ. hàm exec() để chạy truy vấn được tham số hóa.
%d và %s trong SQL là gì?Bạn phải sử dụng %d cho giá trị số nguyên và %s cho giá trị chuỗi . Bạn cũng có thể sử dụng %f cho giá trị dấu phẩy động, %b cho dữ liệu nhị phân và %% chỉ để chèn ký hiệu phần trăm.
Python có tốt với SQL không?Python đặc biệt phù hợp với dữ liệu có cấu trúc (dạng bảng) có thể được tìm nạp bằng SQL và sau đó yêu cầu thao tác xa hơn , điều này có thể khó đạt được nếu chỉ sử dụng SQL. |