Mysql
 sql >> Database >  >> RDS >> Mysql

Quale tipo di dati di colonna dovrei usare per archiviare grandi quantità di testo o html

Dovresti usare TEXT come hanno detto gli altri, ma ogni volta che usi TEXT o BLOB c'è qualche consiglio importante:disaccoppiali dal tuo tavolo base poiché rallentano davvero l'accesso al tavolo. Immagina la seguente struttura:

CREATE TABLE article (
    id INT(10) UNSIGNED,
    title VARCHAR(40),
    author_id INT(10) UNSIGNED,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE article_body (
    id INT(10) UNSIGNED,
    body TEXT
);

Ogni volta che elenchi articoli puoi utilizzare l'article tabella (ultimi 5 articoli dell'autore 33):

SELECT id, title FROM article WHERE author_id=33 ORDER BY created DESC LIMIT 5

E quando qualcuno apre davvero l'articolo puoi usare qualcosa come:

SELECT a.title, ab.body
FROM article AS a
   LEFT JOIN article_body AS ab ON ab.id = a.id
WHERE a.id=82