`
chenzehe
  • 浏览: 538168 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CHAR和VARCHAR使用原则

 
阅读更多

CHAR是固定长度,处理速度要比VARCHAR的要快,但是要浪费存储空间。随着MYSQL版本的不断升级,VARCHAR的处理速度也在提高,不同引擎对CHAR和VARCHAR的使用原则不同:

 

MyISAM:建议使用固定长度的数据列代替可变长度的

 

MEMORY:目前都使用固定长度进行存储,因此无论使用CHAR还是VARCHAR都没有关系,两者都做为CHAR类型进行处理。

 

InnoDB:建议使用VARCHAR类型,对于InnoDB数据表,内部的行存储格式没有分固定长度列和可变长度列,所有数据都使用指向数据列的头指针,因此在本质上使用CHAR不一定比VARCHAR性能好,主要的性能是数据行使用的存储总量,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘IO是比较好的。

分享到:
评论

相关推荐

    MySQL中字段类型char、varchar和text的区别

    `char`、`varchar`和`text`都是用于存储字符类型数据的字段类型,但它们各有特点和适用场景。 1. `char` 类型: - `char` 用于存储定长数据,即每个记录的长度是固定的。例如,如果定义`char(10)`,则每个值都将...

    深入char、varchar、text和nchar、nvarchar、ntext的区别详解

    很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大手一挥一把...

    43道MySQL面试题集合(附答案)

    4. char 和 varchar 的区别? 5. varchar(10) 和 varchar(20) 的区别? 6. 谈谈你对索引的理解? 7. 索引的底层使用的是什么数据结构? 8. 谈谈你对 B+ 树的理解? 9. 为什么 InnoDB 存储引擎选用 B+ 树而不是 B 树...

    MySQL数据库应用实战教程第2章教案MySQL数据类型.pdf

    - char和varchar是固定长度和可变长度的字符串,binary和varbinary是二进制字符串,blob用于存储大对象,text则用于大量文本数据。 - char适合存储固定长度的字符串,不浪费空间,而varchar节省空间但长度不固定。...

    MySQL数据库面试题总结

    - `VARCHAR`和`CHAR`用于存储较短的字符串,`TEXT`和`BLOB`用于存储较大的文本和二进制数据。 - 注意:`VARCHAR(n)`和`CHAR(n)`中的n代表字符个数而不是字节数。 - **日期和时间类型**:DATETIME、DATE、...

    一些关于mysql的面试题和答案

    4. **Char和Varchar的区别**: - Char是定长,Varchar是变长,Char适合固定长度的文本,Varchar节省空间。 - Char查询性能可能优于Varchar,因为计算偏移量更直接。 - Varchar在存储短字符串时更高效,不会浪费...

    25.9 MySQL 数据类型

    MySQL 数据类型是数据库管理系统中用来定义列属性的关键元素,它决定了可以存储在列中的数据种类。MySQL 支持多种数据类型,...在实际应用中,开发者应结合业务需求和数据库设计原则,谨慎地选择和使用这些数据类型。

    MySQL索引不会被用到的情况汇总

    联合索引:索引列有多个字段,使用时需要满足最左前缀原则 普通索引 这是最基本的索引,它没有任何限制。它有以下几种创建方式: 1.创建索引 代码如下: CREATE INDEX indexName ON mytable(username(length)); ...

    试析MySQL数据库性能的调优.pdf

    配置文件参数如innodb_buffer_pool_size、max_connections等的调整,可以优化内存使用和连接管理。 总的来说,MySQL数据库性能调优涉及多个层面,需要综合考虑数据类型、存储引擎、SQL优化、系统配置等多个因素。...

    MYSQL索引注意事项及其优化

    但是,索引也需要合理地使用和优化,否则可能会降低查询效率。下面是 MySQL 索引的分类和优化注意事项。 索引分类 MySQL 中的索引可以分为以下几种: 1. 普通索引(Index):对指定字段(非主键、外键)建立索引...

    mysql面试题 包含 初级 中级 高级 各级别知识点.rar

    char、varchar2、varchar有什么区别? 合并查询有哪些? SQL语句执行顺序 null的含义 MySQL、SqlServer、oracle写出字符存储、字符串转时间 update语句可以修改结果集中的数据吗? B树和B+树的区别 你见过...

    数据库技术与应用 数据与数据类型 -D习题与作业.doc

    - 字符型(Char和VarChar):Char是固定长度的字符串,如题目中的选项A、C,而VarChar是可变长度的字符串,如选项B、D。在本例中,考虑到“买1个橙子”最长为9个字符,因此,Char(9)和VarChar(9)是最合适的选项。 -...

    MySQL数据库面试题总结(2022最新版).pdf

    - **CHAR、VARCHAR与Text的区别**:CHAR和VARCHAR用于存储较短文本,Text用于存储大量文本数据。 2. **数据库设计** - **三大范式**:第一范式(1NF)、第二范式(2NF)、第三范式(3NF),分别涉及原子性、消除...

    数据库设计原则.pdf

    1. 字符串类型选择:在定义字符串字段时,应根据实际需求决定使用`char`还是`varchar`类型。`char`类型具有固定的存储长度,查询速度快,但可能造成存储空间的浪费。例如,定义`char(5)`将始终占用5个字节,即使存储...

    MYSQL数据库命名及设计规范

    例如,能用int的就不用char或varchar,能用tinyint的就不用int。时间戳字段尽量用int型,以表示从'1970-01-01 08:00:00'开始的int秒数。 数据库设计文档规范 MYSQL数据库设计文档规范规定了数据库设计文档的格式和...

    [精选]SQLServer数据库表管理详述.pptx

    例如,电话号码通常使用Char或Varchar存储,性别可以使用Bit,年龄使用int,照片使用Image,薪水使用Money。 在创建数据库表时,需要考虑字段是否允许为空,例如,学员姓名、家庭地址、电子邮件和考试成绩是否允许...

    数据库_性能优化篇-2(1).docx

    - 兼容性问题:确保使用兼容的数据类型,例如避免float和int、char和varchar的混用,因为这可能导致不必要的类型转换和性能损失。 - 存储空间最小化:尽可能使用最小的数据类型,如能用int就不用varchar,能用...

    HIVE-SQL开发规范.docx

    CHAR和VARCHAR是字符类型,CHAR预定义长度,VARCHAR动态长度。使用时需考虑存储文本的长度,避免浪费空间或溢出。 2.2 表和分区设计 良好的表和分区设计可以显著提升查询性能。分区是按预定义的列值将数据分隔到...

    mysql性能优化总结

    - **字段类型优先级**:整型优于日期时间,日期时间优于ENUM和CHAR,CHAR优于VARCHAR,VARCHAR优于BLOB和TEXT。 - **够用即可**:选择最小适合的字段类型,避免使用过大的字段,这可以节省存储空间,提升查询速度...

    数据库原理课程设计报告(学生会管理系统).doc

    SQL Server 2000使用Transact-SQL作为其维护和访问数据库的语言,这是SQL的一个子集,使得数据库管理和编程更为简便。它还引入了自我调节和自我管理的引擎功能,提升了系统的易用性和可管理性。此外,SQL Server ...

Global site tag (gtag.js) - Google Analytics