Writing to flash memory is slow because data to full pages can not be written before erasing a block of pages. Writing is then possible to the newly erased pages. So in the worst case a need to write one bit of information can trigger the erasure of several pages of flash memory. For this reason it is very preferable to align the file system blocks on a flash device with the erase block size to avoid unnecessary write amplification. SD cards in a native SD card reader can report their preferred erase block size directly in Linux. Just type
to see the erase block size of your SD card. A smaller erase block size is of course better, because the problem with write amplification is smaller then.
My 16 GB SanDisk Extreme Pro 45 MB/s UHS 1 card reports an erase block size of 4 MB.
My 8 GB Transcend SDHC Class 6 150x card reports an erase block size of 4 MB.
My 2 GB Transcend SD 150x card reports an erase block size of 8 kB.
For USB-sticks the erase block has to be measured because the controller on the card hides this information.
It would be interesting to know the erase block size of other SD cards in use.
The size of the erase block size is not the full story on how fast a particular card is because the speed depends on the algorithm used for garbage collection and the corresponding hardware.
See the talk by Arnd Bergmann on Optimizations for Cheap Flash Media