Hi,
Have you evaluated the behaviour using both num_workers=0 in both cases?
Is it possible your data is optimized for sequential reading (im not familiarized with lmdb  format)?
Setting shuffle=True does nothing but replacing a sequential generator range(0,len) by a list of random indices.