如何正确选择MySQL数据列类型

MySQL数据列类型选择是在我们设计表的时候经常会遇到的问题,下面就教您如何正确选择MySQL数据列类型,供您参考学习。

选择正确的数据列类型能大大提高数据库的性能和使数据库具有高扩展性。在选择MySQL数据列类型时,请从以下几个方面考虑:

存放到数据列中的数据类型。

数据值的取值范围。

考虑性能和处理效率。

数值操作比字符操作快。

小类型的处理速度比大类型快。

不同数据表中固定长度类型和可变长度类型的处理效率是不同的。

可变长度类型在经过删除和修改操作后容易产生碎片,降低系统性能,需定期运行OPTIMIZE TABLE命令以优化数据表。

固定长度类型由于有固定的长度,所以容易确定每条记录的起始点,可加快数据表的修复速度。

在MyISAM和ISAM表中使用固定长度类型数据列有助改善数据库性能。

在InnoDB表中,固定长度和可变长度数据列类型都以相同方式存储,所以固定长度数据列类型并没有性能优势,反而由于可度长度数据列类型由于占用存储空间较少,所以处理速度会快些。

可索引类型能加快数据的查询速度。

明确指定数据列的NOT NULL属性可使MySQL在检索过程中不用去判断数据列是否是NULL,所以可加快处理速度。

数据如何进行比较,是否区分大小写。

是否要在数据列上建立索引。

时间: 2024-09-29 23:50:18

如何正确选择MySQL数据列类型的相关文章

mysql学习——列类型,建表语句和增删改查

建表语句 create table 表名( 列名称 列类型 [列属性] [默认值], ... )engine 引擎名 charset 字符集: mysql学习--列类型,建表语句和增删改查

MySQL数据表类型 数据类型

来源:http://blog.chinaunix.net/uid-10064369-id-2971161.html 表类型 MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种. 这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型.下面做个对比: MyISAM表类型是一种比较成熟稳定的表类型,但是MyISAM对一些功能不支持.    MyISAM  InnoDB 事务  不支持  支持 数据行锁定  不支持,只有表锁定  支持 外键约

MySQL 常用列类型

日期和时间类型为DATETIME.DATE.TIMESTAMP.TIME和YEAR. 注意:在MySQL中,日期时间值使用单引号引起来. 相当于Java中Date,Calender. 最常用的整数类型: MySQL列类型 Java数据类型 ------------------------------------------------------- INT/INTEGER: int/Integer BIGINT: long/Long -------------------------------

MySQL 数据常用类型汇总

1.整数类型 整数类型 字节 最小值 最大值 TINYINT 1 有符号:-128 无符号:0 有符号:127 无符号:255 SMALLINT 2 有符号:-32768 无符号:0 有符号:32767 无符号:65535 MEDIUMINT 3 有符号:-8388608 无符号:0 有符号:8388607 无符号:1677215 INT和INTEGER 4 有符号:-2147483648 无符号:0 有符号:2147483647 无符号:4294967295 BIGINT 8 有符号:-922

正确理解Mysql的列索引和多列索引

MySQL数据库提供两种类型的索引,如果没正确设置,索引的利用效率会大打折扣却完全不知问题出在这. [c-sharp] view plain copy CREATE TABLE test ( id         INT NOT NULL, last_name  CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first_name) ); 以上创建的其实是一个多列索引

mysql数据的类型以及字段的约束问题【重点】

1.确保mysql字段[包括库名.表名]的正确,必要使用反引号 2.校对集指的是字符之间的关系[对字段值的字符处理]校对集依赖于字符集校对集:在某个字符集下面,这些字符的排序关系称之为校对集[对字段进行某种排序处理] 在phpmyadmin中设置库的编码,使用的ci结尾的编码就是使用了校对集[默认是使用的,但是其实校对集基本用不上] _bin:二进制编码层面直接比较_ci:忽略大小写_cs:不忽略大小写[http://www.jb51.net/article/30865.htm] 3.整型介绍s

mysql 数据列按照逗号转成行

前言: 由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式.即同一个列中存储了多个属性值(具体结构见下表). 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果. 表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果: ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 正文: #需要处理的表 create tabl

mysql 三大列类型

数值型 1.整型 tinyint 占据空间:1个字节,存储范围:-128-127,0-255 一个字节  8个位 0000 0000 -1111 1111 0   ->  2的8次方-1=255 0 000000-0 1111111 0->127 1  000000-1 1111111 0->-127 -127->127 二进制补码的问题 如上理解的话,+0,-0重复了,浪费了一种可能性 因此计算机中的负数,不是照着“后面的绝对值位乘-1得到的” 而是用补码换算的 负数=绝对值位-

MySQL三大列类型

数值型 整型:Tinyint 1个字节8个位bit 存贮范围 0---2^8-  (0--255) 0000 0000 =0 1111 1111 =2^8-1=255 计算机为了表示一个数是负数,会把最高位的(左侧)的0/1,当符合看 如为0是正数,如是1,则是负数 0 0000000   0 1111111 –>0->127 1 0000000 à -0  1 1111111 à -127 二进制补码的问题 如上理解+0 和-0,则重复了,浪费一种存储的可能性. 因此计算机种负数,不是照着&