zoukankan      html  css  js  c++  java
  • mysql基础知识

    一、小数问题
    对于小数的表示,MySQL分为两种方式:浮点数和定点数。
    浮点数包括float(单精度)double(双精度),
    而定点数则只有decimal 一种表示。
    定点数在MySQL 内部以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。
     
    二、时间类型                                                  所占字节数
    如果表示年月日:DATE                                   4
    如果表示年月日时分秒:DATETIME            8
    如果只用来表示时分秒:TIME                       3
    如果经常插入或者更新当前系统时间:TIMESTAMP     4
    如果只表示年份:YEAR                                   1
     
    三、ENUM
    enum('M','F')的第一值'M',这点用户在使用时要特别注意。
    另外,ENUM 类型只允许从值集合中选取单个值,而不能一次取多个值
     
    四、SET
    SET 类型可以从允许值集合中选择任意1 个或多个元素进行组合,所以对于输入的值只要是
    在允许值的组合范围内,都可以正确地注入到SET 类型的列中。对于超出允许值范围的值例
    如('a,d,f ')将不允许注入到上面例子中设置的SET 类型列中,而对于( 'a,d,a' )这样包含重
    复成员的集合将只取一次,写入后的结果为“a,d”
     
     
    五:varchar和char
    MySQL 中,不同的存储引擎对 CHAR VARCHAR 的使用原则有所不同,这里简单概括如下。
    MyISAM 存储引擎:建议使用固定长度的数据列代替可变长度的数据列。
    MEMORY 存储引擎:目前都使用固定长度的数据行存储,因此无论使用 CHAR VARCHAR 列都没有关系。两者都是作为 CHAR 类型处理。
    InnoDB 存储引擎:建议使用 VARCHAR 类型。对于InnoDB 数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的 CHAR 列不一定比使用可变长度 VARCHAR 列性能要好。因而,主要的性能因素是数据行使用的存储总量。由于 CHAR 平均占用的空间多于VARCHAR,因此使VARCHAR 来最小化需要处理的数据行的存储总量和磁盘 I/O 是比较好的。
     
    六:TEXT与BLOB
    TEXT 或者BLOB,二者之间的主要差别是BLOB 能用来保存二进制数据,比如照片;而TEXT 只能保存字符数据
    BLOB 和TEXT 值会引起一些性能问题,特别是在执行了大量的删除操作时。
    删除操作会在数据表中留下很大的“空洞”,以后填入这些“空洞”的记录在插入的性能上会有影响。为了提高性能,建议定期使用OPTIMIZE TABLE 功能对这类表进行碎片整理,
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    ORACLE数据库表解锁record is locked by another user
    Oracle11gR2设置连接数process与会话session值
    Oracle 11g用exp无法导出空表的处理方法
    Oracle随机选择一条记录SQL
    Oracle取查询结果数据的第一条记录SQL
    Hibernate 一对多查询对set的排序
    Windows平台下Oracle实例启动过程中日志输出
    Windows平台下Oracle监听服务启动过程中日志输出
    Windows平台下Oracle 11g R2监听文件日志过大,造成客户端无法连接的问题处理
    WebSphere设置会话超时时间
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/5992883.html
Copyright © 2011-2022 走看看