Záleží na tom, co potřebujete.
utf8_bin řazení porovnává řetězce čistě na základě jejich Unicode bod kódu
hodnoty. Pokud mají všechny body kódu stejné hodnoty, pak jsou řetězce stejné. To se však rozpadá, když máte řetězce s různým složením pro kombinování značek (složené vs. dekomponované) nebo znaky, které jsou kanonicky ekvivalentní, ale nemají stejnou bodovou hodnotu kódu. V některých případech pomocí utf8_bin povede k tomu, že se řetězce nebudou shodovat, když to očekáváte. Teoreticky utf8_bin je nejrychlejší, protože na řetězce není aplikována žádná normalizace Unicode, ale nemusí to být to, co chcete.
utf8_general_ci používá normalizaci Unicode pomocí pravidel specifických pro daný jazyk a porovnává řetězce bez ohledu na velikost písmen. utf8_general_cs dělá totéž, ale porovnává řetězce s rozlišením velkých a malých písmen.