zoukankan      html  css  js  c++  java
  • Mysql VARCHAR(X) vs TEXT

    一般情况下,我们不太会纠结用Varchar或text数据类型。
    比如说,我们要存储邮箱,我们自然会用varchar,不会想到用text。而当我们要存储一段话的时候,选了text,感觉varchar也够用。当然感觉是没有用的,我们可以研究一下。

    TEXT and BLOB is stored off the table with the table just having a pointer to the location of the actual storage.

    VARCHAR is stored inline with the table. VARCHAR is faster when the size is reasonable, the tradeoff of which would be faster depends upon your data and your hardware, you'd want to benchmark a realworld scenario with your data.

    以上引用大致是说:TEXT 和 BLOB 相当于是存储了一个位置指针,这个指针指向一个表结构数据。而VARCHAR是表内级别的数据单元。通过指针去找到表再找到数据,相对而言比表内找到一个数据要效率低些。当然TEXT、BLOB存储量比VARCHAR是要大些。

    以下有个清单有助于选定数据该用哪种类型:

    VARCHAR(X)

    Case: user name, email, country, subject, password

    TEXT

    Case: messages, emails, comments, formatted text, html, code, images, links

    MEDIUMTEXT

    Case: large json bodies, short to medium length books, csv strings

    LONGTEXT

    Case: textbooks, programs, years of logs files, harry potter and the goblet of fire, scientific research logging

    参考资料

    http://stackoverflow.com/questions/2023481/mysql-large-varchar-vs-text

  • 相关阅读:
    JAVA 基本数据类型长度
    字符编码详解
    几种编码方式
    Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
    java泛型小问题
    java中的equals()方法
    Java泛型中E、T、K、V等的含义
    数据库的基本操作
    Mysql数据类型简介(大概了解)
    [BZOJ 2007] 海拔
  • 原文地址:https://www.cnblogs.com/flowerszhong/p/5745188.html
Copyright © 2011-2022 走看看