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

Mysql 选择合适的数据类型的更多相关文章

  1. (1.1)mysql 选择合适的数据类型

    (1.1)mysql 选择合适的数据类型 1.char与varchar [1.1]char 在内容未满定义长度时,做空格填充,且字符串末尾空格会被截断:超出定义长度也会被截断.  如:char(4)  ...

  2. MySQL选择合适的数据类型

    一.char和varchar char是固定长度的,查询速度比varchar速度快的多.char的缺点是浪费存储空间. 检索char列时,返回的结果会删除尾部空格,所以程序需要对为空格进行处理. 对于 ...

  3. Design6:选择合适的数据类型

    数据库使用Table来存储海量的数据,细分Table结构,数据最终存储在Table Column中,因此,在设计Table Schema时,必须慎重选择Table Column的Data Type,数 ...

  4. 为MySQL选择合适的备份方式

    数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where… table was DROPPed accidentally… IN ...

  5. 为MySQL选择合适的备份方式[转]

    原文链接:http://nettedfish.sinaapp.com/blog/2013/05/31/choose-suitable-backup-strategy-for-mysql/ 数据库的备份 ...

  6. mysql 选择优化的数据类型

    选择最小的数据类型,因为它们占更少的磁盘,内存和CPU缓存: 选择简单的数据类型,如用整型来存储ip: http://blog.csdn.net/lyd518/article/details/2070 ...

  7. MySql中varchar和char,如何选择合适的数据类型?

    背景 学过MySQL的同学都知道MySQL中varchar和char是两种最主要的字符串类型,varchar是变长的类型,而char是固定长度.那关于如何选择类型就成为令人头疼的事,很多初学者为了保证 ...

  8. mysql如何选择合适的数据类型1:CHAR与VARCHAR

    CHAR和VARCHAR类型类似,都用来存储字符串,但它们"保存"和"检索"的方式不同.CHAR属于"固定长度"的字符串,而VARCHAR属 ...

  9. mysql 开发基础系列12 选择合适的数据类型(上)

    一. char 与varchar比较 在上图的最后一行的值只适用在"非严格模式",关于严格模式后面讲到.在“开发基础系列4“ 中讲到CHAR 列删除了尾部的空格.由于char是固定 ...

随机推荐

  1. 【QUESTION】

    1. HTTP和HTTPS的区别? 2. Soap协议的理解? 3. 一个成功项目,从代码层分析存在可能的问题? 4. mysql 容载技术有哪些? 5. mysql的性能优化有哪些心得? ----- ...

  2. 从零开始调用一个手机号归属地查询API

    自从过上程序员的生活,身边总是或多或少的提及一些API(应用程序接口),网上各种入门教程.实例大把大把,有的只是贴上部分代码,也不给注释, 写Demo的时候连编译都无法通过.下面我从小白开始来介绍下调 ...

  3. 通过servlet实现几个网站常用的功能

    帮朋友写的小程序,由于功能比较简单所以就偷懒只使用了Servlet 一.JSP页面部分(这个部分的设置比较粗糙,主要是为了查看功能能否实现,如果需要向用户展示还得修饰一下) 1)功能页(所有需要后台实 ...

  4. Canny边缘检测

    1.Canny边缘检测基本原理      (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声:二必须尽量精确确定边缘的位置.      (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子.这 ...

  5. Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

    说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开 ...

  6. AOP报错:Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut

    Spring3.x升级4.x时遇到的,JDK版本1.7 aspectj版本问题,1.6.x升级到1.7.x,解决!

  7. MVC简单分层思想(连接数据库)

    图片内容是所有的包名,文件名. 1.创建(M)模型 package oa.bean; public class User { private String userName; private Stri ...

  8. IIS报错:Exception from HRESULT: 0x8007000B解决方法

    报错如下: System.Web.Services.dll 中发生,但未在用户代码中进行处理 其他信息: 服务器无法处理请求. ---> 尝试加载 Oracle 客户端库时引发 BadImage ...

  9. fnciton

    -----oracle将字段字符分隔作为临时表 select column_value as site_id from table (select fn_split_clob(dashboard_pr ...

  10. js手风琴

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...