六、mysql字段类型选择

1.char类型字段会自动删除字符串后面所带的空格,而varchar不会
2.char比varchar快.....
3.myisam 建议 char类型,memory char跟varchar一样,都作为char类型处理;innodb建议 varchar类型
4.optimize table 清理碎片
text碎片产生实例:
create table emp (id tinying(1),content text)engine=myisam; 新建测试表
insert into emp values (1,repeat(‘www‘,10000));id为1的插入10000的连续www
insert into emp values (2,repeat(‘www‘,10000));id为2的插入10000的连续www
insert into emp values (3,repeat(‘www‘,10000));id为3的插入10000的连续www
此时表的数据文件大小为:250K(假设)
delete from emp where id = 3;
此时表的数据大小还是250K,这样就明显造成了空间的浪费
所以这个时候就要祭出碎片清理:optimize table emp;
省下3/1的空间啦啦啦啦啊!

5.所谓合成索引,其实就是将要存储的文本(数据)进行散列,然后用另一个字段存储这些散列值,查找的时候,查找散列值就能找到对应的了
缺点就是只能完全匹配,对于大数据来说,没什么实际意义!!

6.精度要求高的程序,比如货币,则一定要用定点数来描述字段

7.日期时间类型根据最小选择

总结::任何字段类型都以最小的字段模式进行存储即可~

六、mysql字段类型选择,布布扣,bubuko.com

时间: 2024-10-26 09:57:39

六、mysql字段类型选择的相关文章

MySql 字段类型对应 Java 实体类型

前言 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String. 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型. (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题). Java基础类型与包装类型 a) 如果数据库字段是允许为空的,使用包装类. 如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常. 然

mysql列类型选择

比如年龄这个字段可以使用  1990-03-15  也可以用  19900315表示在列类型上可以选择 char 和 int:如果一个字段可以选择多种类型,尽量选择一个更快的类型:字段类型优先级   整型>date,time>char,varchar>blob整型,time运算快,节省空间char/varchar要考虑字符集的转换与排序的校对集,速度慢blob无法使用内存临时表enum类型 内部是用整型来存储的,所以速度也是跟int一样的,但是需要注意,如果enum存储的字符串和 cha

MySQL字段类型 约束

目录 MySQL存储引擎 非空约束 字段类型 整形类型INT TINYINT 浮点类型float 字符类型char varchar 日期类型 枚举集合 约束条件 主键 自增 unsigned无符号 zerofill使用0填充 删除记录 MySQL存储引擎 什么是存储引擎? 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和删除数据操作.用于根据不同的机制处理不同的数据 提示:InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),行锁定 和 外键.(

Mysql 字段类型与约束条件

一.数值类型 二.日期类型 三.枚举与集合 四.约束条件 五.设置严格模式 一.数值类型 1.1 整型 应用场景: id号.年龄... tinyint: 有符号:默认范围 -128, 127 无符号:默认范围 0,255 #tinyint 默认有符号: create table t1(id tinyint, name varchar(16) ); insert into t1 values(-128,'tank'),(127,'jason'); insert into t1 values(-12

wpf读取mysql字段类型为text的问题

在读取数据库中的字段时,可能会根据环境的不同导致一些字段的读取方式不尽相同,在sql数据库中读取字段值用的最多的算是dataTable.Rows[行][列],但是到了mysql中就会有一些差别,在flex中可以按照这种方式进行读取,但是到了wpf中读取mysql中的text字段就会有差别,有幸让我碰到了这个问题,当时也是一头雾水,反复检查了数据库中的编码格式及代码块:确定几遍,格式是设定好的格式,代码是熟悉的代码,但是为什么按照常规的方式读取获取到的是byte类型的值呢? --百思不得其解,最后

mysql字段类型

会安装mysql,会几条sql语句,会jdbc,会hibernate配置,以为就会mysql了,最近几天面试被问到mysql的问题,无地自容,系统的学习一下. mysql优化之一,选择合适的而不是最大的数据类型. 整型 类型 占用字节 范围 TINYINT 1 2^8 SMALLINT 2 2^16 MEDIUMINT 3 2^24 INT 4 2^32 BIGINT 8 2^64 浮点型 类型 描述 FLOAT[(M,D)] M表示最大总位数,D表示小数点后最大位数 DOUBLE[(M,D)]

MySQL字段类型详解

MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. 概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式.由MySQL支持的列类型列在下面.下列代码字母用于描述中:M指出最大的显示尺寸.最大的合法的显示尺寸是 255 .D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量.最大可能的值是30,但是应该不大于M

MYSQL 字段类型之TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT

1. tinyint: 只能存储-128到127大小的数字, 不在乎后面的定义,如tinyint(9). 需1字节存储空间. 当加有UNSIGNED后,数字可以从0增加到255大小. [email protected] : test 22:36:25> create table ti(id tinyint(9), no tinyint(1)); Query OK, 0 rows affected (0.03 sec) [email protected] : test 22:36:44> ins

mysql 字段类型VARCHAR转换成DECIMAL

在我们写代码的实际业务中,有时候实体类用的是String,数据库中自然是VARCHAR类型,但是如果这个实体的属性值放的是数字类型,你查询的时候又需要对它进行排序.sql怎么写呢. 别担心mysql提供了转换方法:CAST  ,CONVERT 例如:我把VARCHAR类型的价格 转换成DECIMAL 然后再进行排序       1.select  price from TABLE  order by CAST (price as DECIMAL) desc 2.select  price fro