Export/Put and Import/Get

I have questions about importing and exporting that don't seem to have up-to-date answers anywhere.

1. What's the difference between Export and Put? Which should I use if I care about how long it takes to execute? Which if I care about file size?

2. What's the difference between Import and Get? Same follow ups.

3. Why do Export/Put write to Directory[] but Import/Get read from \$Path? (If you doubt this, try it yourself. If this isn't true for you, message me to discuss please.)

4. Does it matter what file type I Export/Put to? I've heard of .m and .mx, are either of those optimal? (My use case is a giant 2D table of numerical values, but you could also answer more generally.)

Edit: I've found nothing that even touches on (1) or (3) (except an answer to (1) from 2002 that is likely out of date). Somewhere said Import is the same as Get for .mx files, but I don't know if it's the same in general, which is why I asked (2). I just added (4) because the explanations I've found of file types don't seem to answer my question of whether one is more time/space-efficient than the other. I'm exporting then importing a giant table, so doing so efficiently is important for me.

• Comments are not for extended discussion; this conversation has been moved to chat. – Kuba Jul 23 '18 at 8:37