utf8_bin: сравнивать строки по двоичному значению каждого символа в строке
utf8_general_ci: сравнивать строки, используя общие правила языка и используя сравнения без учета регистра
utf8_general_cs: сравнивать строки, используя общие правила языка и используя сравнения с учетом регистра
Например, следующее будет иметь значение true с любым из параметров сортировки UTF8_general, но не с параметром utf8_bin
Код:
Ä = A
Ö = O
Ü = U
При сопоставлении utf8_general_ci они также вернут true, даже если не тот же случай.
Ничто из этого не является "лучше"; они просто имеют разные функции. Вам нужно выбрать, какой из них лучше всего соответствует вашим потребностям.