best column type for hashed data in mysql
If you are starting with hex, use UNHEX() when storing and HEX() when fetching.  Use BINARY(32) for the datatype.  This occupies a constant 32 bytes.

If you are starting with binary, then be careful when escaping to store/load.  Probably best to do a double convert each way.

Be sure to have lots of RAM.  Once the index becomes bigger than the buffer_pool, the system will slow down because of the randomness of sha256 (or any other hash or uuid).

If you go with Base64, then use CHAR(43) COLLATE ascii_bin, which will be a constant 43 bytes, and will be case-sensitive.

256 is gross overkill.  If you have about 2^85 entries, there is only one chance in 2^85 of having any hash collisions.  For a mere MD5, those numbers are 9 trillion.