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。不仅节约存储而且提高操作效率。

  • 相关阅读:
    应用服务器安装
    datasnap的线程池
    压缩OLEVARIANT数据
    服务端日志记录
    提交主从表的多个已经修改的数据
    MySQL与PostgreSQL相比哪个更好?
    Vue入门常用指令详解
    Laravel模型事件的实现原理详解
    Git 遇到了 early EOF indexpack failed 问题
    Laravel 代码开发最佳实践
  • 原文地址:https://www.cnblogs.com/lifehrx/p/6099593.html
Copyright © 2011-2022 走看看