Xin tư vấn mysql

Discussion in 'Hỏi Đáp Kỹ Thuật' started by wpresources, Jan 14, 2023.

  1. wpresources

    wpresources Bang Chúng

    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
     
  2. Nai

    Nai MiddleMan Staff Member

    Dùng câu lệnh khác cú pháp tương tự nhưng content và id khác nhau ko được hả bạn.
     
    wpresources likes this.
  3. command

    command Bang Chúng

    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.
     
    wpresources likes this.
  4. wpresources

    wpresources Bang Chúng

  5. firefox

    firefox Bang Chúng

    đâ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%)
    upload_2023-1-16_10-7-44.png

    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
    upload_2023-1-16_10-18-32.png
     
    Last edited: Jan 16, 2023
    wpresources and Nai like this.
  6. wpresources

    wpresources Bang Chúng

    {sweat} Tí tưởng bở mình tính thay bằng cách 2 hết sau này sửa lại có mà ốm.Cảm ơn các pro nhiều
     
    Last edited: Jan 16, 2023
    firefox likes this.