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用来表示定点数。
在精度要求比较高的应用中类似货币要使用定点数保存。
MySQL 数据类型的简单选择的更多相关文章
- MySQL学习笔记(二):MySQL数据类型汇总及选择参考
本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型. ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定 ...
- 谈谈如何选择合适的MySQL数据类型
MySQL数据类型选择 一 .选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更 ...
- 如何选择合适的MySQL数据类型
一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...
- MySQL数据类型的最优选择
MySQL数据类型的最优选择 慎重选择数据类型很重要.为啥哩?可以提高性能.原理如下: ● 存储(内存.磁盘).从而节省I/O(检索相同数据情况下) ● 计算.进而 ...
- MySQL数据类型的选择
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据类型的选择时间:2019年2月22日内容:MySQL数据类型的选择范式参考重点:主要讲述MyS ...
- MySQL 列,可选择的数据类型(通过sql命令查看:`help create table;`)
MySQL 列,可选择的数据类型(通过sql命令查看:help create table;) BIT[(length)] | TINYINT[(length)] [UNSIGNED] [ZEROFIL ...
- Mysql 数据类型及选择原则
MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 2 . 数据类型会影响 ...
- MySQL入门很简单: 2 MySQL数据类型
2. MySQL数据类型 2.1 整数类型 后面的是默认显示宽度: tinyint(4) smallint(6) mediumint(9) int(11) bigint(20) 2.2 浮点型和定点数 ...
- mysql数据类型
一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUB ...
随机推荐
- BootStrap中的button使用
原文地址:http://www.phloxblog.in/bootstrap-buttons/#.U5xYso2fclm 站点中事件的触发往往依赖于button或者超链接.因此,button能够觉得是 ...
- clojure中符号symbols 和变量vars的正确理解
原地址 http://stackoverflow.com/questions/11662084/why-does-clojure-distinguish-between-symbols-and-va ...
- IP的准确性
最近游戏项目中更新机制有所修改,游戏启动时会从cdn上读取一个文件(约60B),但是后台异常收集系统中发现很多玩家请求不了该文件(libcurl的get请求),返回的error code有很多种,以6 ...
- 光流法(optical flow)
光流分为稠密光流和稀疏光流 光流(optic flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了.因为这种视觉现象我们每天都在经历.从本质上说,光流就是你在这个运动着的世界里感 ...
- 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记
一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...
- 第三章 logstash - 输入插件之tcp与redis
常用的输入插件: tcp redis 一.tcp 1.用法 input { tcp { port => 4560 codec => json_lines mode => server ...
- 2014年.net程序员年终总结
2014年经历了3家公司,感觉这一年工作不怎么顺利,在2013年1月进入一家外企从事软件架构设计.开发测试.部署实施的相关工作,在2013年感觉工作很充实,在2014年由于项目的原因被迫去做项目维护, ...
- 读书笔记,《Java 8实战》,第三章,Lambda表达式
第一节,Lambda管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式,它没有名称,但它有参数列表.函数主题和返回值. 本节介绍了Lambda表达式的语法,它包括 ...
- 用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站
从ASP.NET MVC第一个版本开始到现在,创建ASP.NET MVC项目的官方方法只有一个,“文件”->“新建”->“项目”,然后选择ASP.NET MVC X Web应用程序. 这种 ...
- 设置让php能够以root权限来执行exec() 或者 shell_exec()
一.查看启动你php的进程的用户是谁. 可以通过在命令行执行:ps -ef | grep php来看.或者在php中执行 echo exec('whoami') 来查看.centos下默认会是nobo ...