Em đang thử nghiệm cách viết truy vấn cho nhanh Ví dụ : select * from post where name='content' select * from post whereid=(select id from post where name='content') Vấn đề là khi tìm với name='content' lần đầu nó lưu nhật ký.Nên test câu lệnh hai cũng tìm nó tốc độ đọc từ nhật ký ra=>Nên không rõ được câu lệnh nào nhanh hơn Mình không rành mysql lắm pro nào biết chỉ mình với làm sao để test cho chuẩn hay phải dùng hai máy với database giống nhau
Trong trường hợp này, khỏi test cũng biết câu 2 chậm hơn câu lệnh 1. Vì khi thực hiện thì thời gian của subquery trong câu lệnh 2 đã bằng thời gian câu lệnh 1 rồi nếu bảng post có ít field và dữ liệu trong field nhẹ, còn ngược lại thì thời gian sẽ nhiều hơn chút nhưng ko đáng kể. Nếu muốn trãi nghiệm tốc độ và quá trình thực hiện giữa các queries thì nên clone MySQL ra 1 máy khác và thực hiện.
Do dạo này mình tìm thấy bọn tây nói về cách như này ví dụ https://stackoverflow.com/questions...ire-row-which-has-the-largest-id-in-the-table nên mon men test thử ấy mà
đây là execute plan của 1 câu lệnh tương tự ở MS SQL nhìn ở góc độ này sẽ thấy cái thứ 2 nó nhiều bước hơn, do nó cần lấy kết quả của subquery đem so sánh 1 lần nữa với primarykey index 1. Ở table ít data (200k records, kết quả gần như ngang nhau khi việc scan index tốn 0%) 2. Ở table hàng chục triệu record, việc scan index dần trở nên nặng nề và tốn 1/2 chi phí, việc join cũng tốn kha khá nên chung quy lại nó chậm hơn nhiều