Det är ingen skillnad.
Det finns dock en varning om du lagrar en sträng.
Om du bara vill lagra en byte-array eller annan binär data som en ström eller fil, använd den binära typen eftersom det är vad de är avsedda för.
Citat från MySQL-manualen :
Så tekniskt sett är det ingen skillnad.
Men när en sträng lagras måste den konverteras från en sträng till bytevärden med hjälp av en teckenuppsättning. Beslutet är att antingen göra detta själv innan MySQL-servern eller så låter du MySQL göra det åt dig. MySQL kommer att utföra med genom att casta en sträng till BINÄR
med hjälp av BIN-teckenuppsättningarna.
Om du vill lagra kodningen i ett annat format, låt oss säga att du har ett affärskrav som säger att du måste använda 4 byte per tecken (MySQL gör inte detta som standard) kan du sedan använda TECKENSTÄLLNING BINÄR kod> till en textkolumn och utför teckenuppsättningskodningen själv.
Det är också värt att läsa Den BINÄRA
och VARBINARY
Typer
från MySQL-manualen eftersom denna innehåller viktig information som utfyllnad.
Sammanfattning: Det finns ingen teknisk skillnad eftersom den ena är en synonym till den andra. Enligt min åsikt är det logiskt logiskt att lagra binära strängar i datatyper som normalt skulle hålla en sträng med TECKENSTÄCKNING BINÄR
och för att lagra byte-arrayer/strömmar etc i BINÄR
fält som inte kan representeras genom att transformera data genom en teckenuppsättning.