zoukankan      html  css  js  c++  java
  • Mysql 选择合适的数据类型

    一. char 与 varchar

    char : 长度固定,所以处理的速度比 varchar 快,但浪费储存空间。

    varchar : 长度可变,列性能较好。并且平均占用空间少于 char。

    因此,选择 varchar  来最小化需求处理数据行的存储总量和磁盘 I/O 是比较好的。

    二. text 与 blob

    text : 只能保存字符数据。(例如: 文章日记)包括:text, mediumtext, longtext

    blob : 用来保存二进制数据。                        包括:blob, mediumblob, longtext

    注意:

    1.尽量避免检索大型的 blob 和 text。

    2.把 blob 或 text 列分离到单独的列。

    3.使用合成的索引来提高大文本字段的查询性能。

    4.text 和 blob 在执行删除操作后,会留下很大的空洞,以后填入这些“空洞”的记录在插入的性能上会有影响。

    要定期使用 optimize table 功能对这类表进行碎片整理。

    三. 浮点数 与 定点数

    浮点数 : float double(real)---------------尽量保留足够的小数位,否则会出现四舍五入,避免数据存储的不精确。

    定点数 :decimal(numberic)--------------定点数是以字符串储存的 

    浮点数保存数据时会出现误差,货币要使用定点数。编程中要尽量避免使用浮点数比较,java 中使用 BigDecimal.

    四. 日期类型的选择

    1. 年份久远的要用 DATATIME 

    2. 不同时区要用 TIMESTAMP

    3. 如果只要存“年”,就只用1个字节的YEAR, 不用DATE。不仅节约存储而且提高操作效率。

  • 相关阅读:
    在Postman用post方式请求webapi
    C#控制台为输出内容设置背景色和字体颜色
    不卡界面,实现文件上传
    编译后的dll,xml,pdb分别是什么内容,各有什么用处?
    C#的dynamic解析xml
    Oracle中的正则表达式
    oracle中 connect by 递归查询用法
    oracle中 listagg() WITHIN GROUP () 行转列函数的使用
    oracle中dualde使用
    MYSQL基本命令
  • 原文地址:https://www.cnblogs.com/lifehrx/p/6099593.html
Copyright © 2011-2022 走看看