基于mysq字段选择的详解

 更新时间:2013年06月22日 15:20:53   作者:  
本篇文章是对mysq字段选择进行了详细的分析介绍,需要的朋友参考下

mysql支持很多字段类型,包括数值类型、日期/时间类型和字符串(字符)类型;在使用时需要考虑到存储空间,存储效率;
几种列类型描述使用了下述惯例:
·  M
表示最大显示宽度。最大有效显示宽度是255。
·  D
时间类型:datetime(8bytes),timestamp(4bytes)
字符类型:
VARCHAR(M),L+1个字节,其中L<= M且0 <=M<= 65535,不宜把M设置得过大,因为在内存中会计算实际长度,这个计算时需要消耗资源的;
CHAR(M)M个字节,0 <= M<= 255
BINARY(M),M个字节,0 <= M <= 255
VARBINARY(M),L+1个字节,其中L <= M且0<= M <= 255
ENUM('value1','value2',...),1或2个字节,取决于枚举值的个数(最多65,535个值),调整比较复杂,需要先drop在create;在枚举值小于255时,占1个字节,大于255时占2个字节;
SET('value1','value2',...)1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员),1-8占1个字节,9-16占2个字节,17-24占3个字节,25-32占4个字节,33-64占8个字节;
整型类型:
tinyint(8),一个字节
smallint(16),2个字节
mediumint(24),3个字节
int(32),4个字节
bigint(64),8个字节
实型类型:
float(4bytes)
Float(M,D)  单精度浮点型,精确到小数点后面6位,双精度double(M,D)精确到小数点后面13位;
float 内存如何存储
        
类型
 存储位数
 总位数
 偏移值

 数符(S)
 阶码(E)
 尾数(M)
 (offset)

短实数(float)
    1
    8
   23
    32
 127

长实数(double)
    1
    11
   52
    64
  1023

Float怎么存储
N (10) = 123.456,
换算成二进制表示:
N (2) = 1111011. 01110100101111001
= 1. 11101101110100101111001(...) * 2^6
 那么 E = 127 + 6 = 133(10) = 10000101(2)
M = 111 0110 1110 1001 0111 1001 (省略了最高数字位1, 共23bit)
 组合起来就是:
S         E                       M
0        10000101     111 0110 1110 1001 0111 1001

整型类型:
Decimal(M,D)占M+2个字节,小数点和符号需要
各自占一个字节;
DECIMAL 可能的最大取值范围与DOUBLE 一样
,但是其有效的取值范围由M 和D 的值决定,存蓄
的方式是字符串;
Decimal(M,D)占M+2个字节,小数点和符号需要各自占一个字节;
DECIMAL 可能的最大取值范围与DOUBLE 一样,但是其有效的取值范围由M 和D 的值决定,存蓄的方式是字符串;

相关文章

  • linux下mysql5.7.17最新稳定版本安装教程

    linux下mysql5.7.17最新稳定版本安装教程

    这篇文章主要为大家详细介绍了linux上mysql5.7.17最新稳定版本安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • MGR集群搭建及配置过程

    MGR集群搭建及配置过程

    MGR是MySQL数据库未来发展的一个重要方向,本文重点给大家介绍MGR集群搭建过程分析,对MGR集群搭建相关知识感兴趣的朋友一起看看吧
    2022-02-02
  • 关于MySQL分区表的一个性能BUG

    关于MySQL分区表的一个性能BUG

    这篇文章主要给大家讲诉MySQL分区表的一个性能BUG,也就是使用分区表进行数据查询/加载的时候比普通表的性能下降了约50%,下面就来讲将对此的解决办法,需要的朋友可以参考以下内容
    2021-09-09
  • Mysql(MyISAM)的读写互斥锁问题的解决方法

    Mysql(MyISAM)的读写互斥锁问题的解决方法

    最近因为数据库读的请求增加,出现了比较严重的读写锁问题,由于主从分离,主服务器很快的执行完了写入的操作,但从库由于有大量的select的查询,会被这些来自主辅同步的update,insert严重堵塞,最后造成所有的Mysql从库负载迅速上升。
    2011-09-09
  • MySql树形结构(多级菜单)查询设计方案

    MySql树形结构(多级菜单)查询设计方案

    本文主要介绍了MySql树形结构(多级菜单)查询设计方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • CentOS7.8安装mysql 8.0.20的教程详解

    CentOS7.8安装mysql 8.0.20的教程详解

    这篇文章主要介绍了CentOS7.8安装mysql 8.0.20的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Innodb表select查询顺序

    Innodb表select查询顺序

    这篇文章主要介绍了Innodb表select查询顺序的相关资料,需要的朋友可以参考下
    2017-01-01
  • 介绍使用WordPress时10个常用的MySQL查询

    介绍使用WordPress时10个常用的MySQL查询

    这篇文章主要介绍了介绍使用WordPress时10个常用的MySQL查询,许多用户在使用WordPress时选择使用MySQL,本文的整理对于刚刚上手的用户来说非常有用,需要的朋友可以参考下
    2015-04-04
  • MYSQL中 char 和 varchar的区别

    MYSQL中 char 和 varchar的区别

    这篇文章主要介绍了MYSQL中 char 和 varchar的区别,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • SQL索引失效的11种情况详析

    SQL索引失效的11种情况详析

    索引并不是时时都会生效的,遇到一些情况将导致索引失效,下面这篇文章主要给大家介绍了关于SQL索引失效的11种情况,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03

最新评论