In the Data Link Layer, is it better to use large or small frames? I understand how the layer works to an extent, but cannot seem to figure out if the data link handles big frames more efficiently due to error detection or small frames better.

I am assuming from my understanding that the data link works better with small frames as it can save time by not having to keep retransmitting larger frames when an error is detected.

Is this reasoning correct?

Havent used stackexchange in a long while so apologies if these type of questions are no longer permitted
Bigger frames mean a higher useful data fraction (same header size, more payload). But bigger frames mean a higher probability of the frame getting corrupted by random errors (thus getting lost). Larger frames mean higher latencies (need to wait for all of it to arrive, be checked, and handed to the application to be able to use any data in it). They also mean larger buffers might be a problem in limited devices).

As you can see, frame size is an exercise in compromise among a host of conflicting desirable measures.