sql >> Database >  >> RDS >> Mysql

MySQL binair vs char tekenset binair

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.




  1. Voeg dezelfde vaste waarde in meerdere rijen in

  2. Hoe verbinding maken met de Cloud SQL MySQL-database vanuit App Engine?

  3. C# MySQL tweede DataReader in DataReader while-lus

  4. Hoe Android Studio verbinden met SQL Server-database?