sql >> Database >  >> RDS >> Mysql

MySQL beste manier om lange strings op te slaan

Over het algemeen is dit geen vraag met een "juist" antwoord. Er is geen "oneindige lengte" tekstopslagtype in MySQL. Je zou LONGTEXT . kunnen gebruiken , maar dat heeft nog steeds een (absurd hoge) bovengrens. Maar als je dat doet, schop je je DBMS in de tanden omdat je te maken hebt met die absurde klodder van een kolom voor je tekst van 50 tekens. Om nog maar te zwijgen van het feit dat je er bijna niets mee doet.

Dus de meeste toekomstbestendigheid(TM) wordt waarschijnlijk aangeboden door LONGTEXT . Maar het is ook een zeer slechte methode om het probleem op te lossen. Eerlijk gezegd zou ik de aanvraagvereisten opnieuw bekijken. Het opslaan van strings die geen "domein" hebben (zoals in, goed gedefinieerd zijn in hun toepassing) en een willekeurige lengte is niet een van de sterke punten van RDBMS.

Als ik dit zou willen oplossen op het niveau van "applicatieontwerp", zou ik hiervoor NoSQL key-value store gebruiken (en ik ben zo anti-NoSQL-hype als ze kunnen, dus je weet dat het serieus is), zelfs hoewel ik erken dat het een vrij dure verandering is voor zo'n kleine verandering. Maar als dit een indicatie is van wat uw DBMS uiteindelijk zal bevatten, is het misschien verstandiger om nu over te schakelen om hetzelfde probleem in de toekomst honderd keer te voorkomen. Gegevensdomein is erg belangrijk in RDBMS, terwijl het expliciet buiten beschouwing wordt gelaten in niet-relationele oplossingen, wat lijkt te zijn wat u hier probeert op te lossen.

Vastgelopen met MySQL? Verhoog het gewoon tot VARCHAR(1000) . Als je geen eisen stelt aan je gegevens, is het sowieso niet relevant wat je doet.



  1. Hoe installeer ik Oracle SQL Developer 18.2 op Windows 10?

  2. Forceer MySQL om duplicaten van de WHERE IN-clausule te retourneren zonder JOIN/UNION te gebruiken?

  3. Hoe genereer ik een reeks uurgemiddelden in MySQL?

  4. Wat is het doel van character_set_connection?