Tôi vừa mới phát hiện ra rằng việc thực hiện kế hoạch thực hiện giữa hai câu lệnh select Sau đây là ồ ạt khác nhau:ngạc nhiên tốc độ tăng SQL
select * from your_large_table
where LEFT(some_string_field, 4) = '2505'
select * from your_large_table
where some_string_field like '2505%'
Các kế hoạch thực hiện lần lượt là 98% và 2%. Bit của một sự khác biệt về tốc độ sau đó. Tôi đã thực sự bị sốc khi tôi nhìn thấy nó.
Tôi luôn luôn thực hiện LEFT (xxx) = 'yyy' khi nó đọc tốt. Tôi thực sự tìm thấy điều này bằng cách kiểm tra LINQ được tạo ra với SQL được tạo bằng tay. Tôi cho rằng lệnh LIKE sẽ chậm hơn, nhưng thực tế lại nhanh hơn rất nhiều.
Câu hỏi của tôi là tại sao LEFT() chậm hơn so với LIKE '% ..'. Họ là afterall giống hệt nhau?
Ngoài ra, có một lần truy cập CPU bằng cách sử dụng LEFT() không?
Typeof trong dòng thứ 2, nó không hoàn toàn giống nhau. –
Ví dụ tuyệt vời! Nhờ bạn, tôi không phải tự hỏi câu hỏi của mình. :) – Ecyrb
Ai đó có vẻ đã sao chép các ví dụ của bạn, với các thay thế nhỏ, vào bài viết wikipedia. Sự thay thế của '' Ford'' với '' Toyota'' đặc biệt là nói. –