IO:DataFileRead

DataFileRead occurs when a connection needs to access a specific data page that is not currently present in the PostgreSQL Shared Buffers.
The process must wait while the operating system reads the page from the disk (or filesystem cache) into memory.

Implication:

While some disk reads are normal, a high percentage of these wait events typically indicates that your active dataset (working set) is larger than your available memory,
or that inefficient queries are forcing unnecessary disk reads.

Why it is happening (Root Causes)

If this event is dominating, look for these culprits:

Comparison: IO:DataFileRead vs. IO:DataFilePrefetch

It is important not to confuse this with Prefetching.