Using binary format to store for an SD card

I think the main focus of the link you referenced was not writing small data elements individually to the SD card, but to group them and write the group.

If you have text data, for example the names of all the people in a class at school, and you need to store these on an SD card, then there is no alternative but to store text data. Ultimately, it will have a binary representation on the SD card.

With this structure, you have partly solved the problem of consolidating data before writing it. Your problem is now that you are creating huge intermediate arrays which will break the RAM limit on your arduino. However, it is true that, up to a limit, the more data you can write at once to the SD card, the quicker it is. Better might be to use the same buffer for both writing and reading, since you won't be doing these operations simultaneously.

struct Datastore {
  uint16_t x;
  uint16_t y;
};