zoukankan      html  css  js  c++  java
  • MySQL 数据类型的简单选择

    选择合适的数据类型:
    char和varchar:

    +---------+------------+
    | char(6) | varchar(6) |
    +---------+------------+
    |         |            |
    | str     | str        |
    | str123  | str123     |
    | str123  | str123     |
    +---------+------------+
    4 rows in set (0.00 sec)
    

      


    char(6)的存储需求总是6个字节。
    varchar(6)存储''需要个1字节。
    varchar(6)存储'str'需要4个字节。
    varchar(6)存储'str123'需要7个字节。
    varchar(6)存储'str123no'需要7个字节。

    总结:char(n)所需要的存储字节为n
    varchar(n)所需要的字节依赖于插入的字符串m,m+1<=字节<=n+1

    text与blob
    一般存储少量字符串的时候,我们会选择char或者varchar,而在存储较大文本的时候通常会选择text或者blob。二者之间的主要差别是blob能用来保存二进制数据,比如照片。而text只能用来保存字符数据,比如一片文章。
    text又分为text、mediumtext、longtext
    blob又分为blob、mediumblob、longblob
    主要区别就是存储文本长度不同和存储字节不同。

    经常使用blob和text类型会引起性能的降低。删除操作会在表中留下很大的"空洞"(并不会因为数据的减少而清空空间。类似于书架,书拿走了,空间还在占用),可以定期优化表进行碎片整理。optimize table

    日期类型的选择
    DATE、TIME、DATETIME、TIMESTAMP
    几个原则:
    如果只需要年,用YEAR类型就可以。
    如果需要的时间范围比较大,用DATETIME
    如果给不同时区用户使用,则用TIMESTAMP

    浮点数和定点数
    浮点数一般用户包含有小数位的数值。float、double如果插入数据到过定义的精度有可能被四舍五入。定点数实际上是以字符串形式存放的。所以定点数可以精确的保存数据。如果实际插入的数据大于精度,则会告警。decimal用来表示定点数。
    在精度要求比较高的应用中类似货币要使用定点数保存。

  • 相关阅读:
    sudo配置临时取得root权限
    Linux 前台 和 后台进程 说明
    延迟加载
    事件代理
    字符串方法总结
    javascript
    HTML
    通用样式,如清除浮动
    html脱离文档流事件
    经典容易忽略的行内块
  • 原文地址:https://www.cnblogs.com/xiaoit/p/4576515.html
Copyright © 2011-2022 走看看