Er is geen verschil.
Er is echter een waarschuwing als u een string opslaat.
Als je alleen een bytearray of andere binaire gegevens zoals een stream of bestand wilt opslaan, gebruik dan het binaire type, want daar zijn ze voor bedoeld.
Citaat uit de MySQL-handleiding :
Dus technisch gezien is er geen verschil.
Bij het opslaan van een tekenreeks moet deze echter worden omgezet van een tekenreeks naar bytewaarden met behulp van een tekenset. De beslissing is om dit ofwel zelf te doen vóór de MySQL-server, of u laat het aan MySQL over om dit voor u te doen. MySQL zal presteren door een string te casten naar BINARY
met behulp van de BIN-tekensets.
Als u de codering in een ander formaat wilt opslaan, laten we zeggen dat u een zakelijke vereiste heeft die zegt dat u 4 bytes per teken moet gebruiken (MySQL doet dit niet standaard), dan kunt u de CHARACTER SET BINARY
naar een tekstkolom en voer zelf de tekensetcodering uit.
Het is ook de moeite waard om The BINARY
en VARBINARY
Soorten
uit de MySQL-handleiding, omdat deze belangrijke informatie bevat, zoals opvulling.
Samenvatting: Er is geen technisch verschil, omdat het ene synoniem is voor het andere. Naar mijn mening is het logisch om binaire tekenreeksen op te slaan in gegevenstypen die normaal gesproken een tekenreeks bevatten met behulp van de CHARACTER SET BINARY
en om byte-arrays / streams enz. op te slaan in BINARY
velden die niet kunnen worden weergegeven door de gegevens te transformeren via een tekenset.