Hỏi về phương pháp query MySQL với lượng dữ liệu lớn

Chào mọi người, mình có 1 bảng dữ liệu gồm các trường event_date, device_name, time_use. Mình cần phải tính lũy kế số các device có time_use = 1 theo ngày. Mình dùng query

select t.event_date,
    (select count(distinct case when t1.event_date <= t.event_date and t1.time_use = 1 then t1.device_name end) from table t1)
from table t

Tính toán có vẻ ổn nhưng khi chạy thử trên Bigquery thì thời gian rất lâu. Mọi người có ai có cao kiến gì về lệnh query thì giúp mình nhé.

Cái câu correlated subquery của bạn, cứ tính đơn giản là bảng table duyệt qua 1 triệu rows, thì nó phải chạy 1 triệu lần. Như vậy có “ổn” nổi ko ?

2 Likes

Mình có bảo nó hoàn toàn ổn đâu nhỉ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?