美文网首页
mysql 数据类型优化

mysql 数据类型优化

作者: lesliefang | 来源:发表于2020-03-04 23:14 被阅读0次

高性能MySQL第三版第4章学习

mysql show create table tablename 查看建表语句

用sql创建表后一定要自信看看实际生成的schema

Smaller is usually better

IP 用整形存储, 因为 IP 本来就是 32 位的无符号整数, 为了方便阅读才4个为一组分开的。
用 INET_ATON 和 INET_NTOA 函数转换

Simple is good
Avoid NULL if possible.

不能为 NULL 显示标记为 NOT NULL
if you’re planning to index columns, avoid making them nullable if possible

INT(1) 和 INt(20) 存储上没有什么区别, 括号内的宽度只是对显示格式的一个约束,所以定义时不要加宽度。

Float 4个字节,Double 8个字节, Double 精度和范围更高

DECIMAL: 是精确小数(exact fractional numbers)。 为什么就做精确小数呢???因为 Float 和 Double 在计算机内的表示方法(一般是IEE754)无法精确的表示一个精度很高的小数(如 1/3 等),只能近似表示。
那么 DECIMAL 为什么能表示呢??? 因为 DECIMAL 会通过一些方法自己计算,CPU 硬件是直接支持浮点运算的,因此Float 和 Double 运算非常块,而CPU 不支持 DECIMAL的运算,DECIMAL 运算是自己实现的,速度很慢。

除了要求高精度的金融应用,一般应用用不到 DECIMAL 类型。

一些高精度的小数可以转成 BIGINT 来表示,如万分之一分钱, 我可以统一乘以一万表示成 BIGINT。
这样就避免了 Float的不精确和 DECIMAL 的计算代价。

VARCHAR 通常会用 1到2个而外的字节存储字符串的长度,长度小于255就用1个字节存储长度, 大于255就用两个字节粗存储长度。

DateTime 时区独立的,占8个字节
TimeStamp 时区有关的,有时区信息,4个字节
区别不大,一般推荐用 TimeStamp 因为节省空间

底层没有 Boolean 类型, boolean 在底层用 tinyint 表示,占用 1个字节

Badly written schema migration programs and programs that autogenerate schemas can cause severe performance problems
自动生成的数据库schema 很危险,一定要检查,因为生成的不一定可靠,可能有性能问题, 如所有的string都用大的 VARCHAR 表示。
大部分 ORM 都支持由实体生成 schema (code first 模式), 当然也支持由数据库表直接生成实体类(database first)

相关文章

  • MYSQL-数据类型优化

    MYSQL-数据类型优化 优化数据类型 MySQL支持的数据类型非常多,选择正确的数据类型对获得高性能至关重要。选...

  • MySQL优化指南

    MySQL优化指南 数据类型优化 原则 更小的通常更好:更小的数据类型通常更快,因为他们占用更少的磁盘、CPU和缓...

  • face 38 mysql数据库层的优化

    mysql数据库层的优化 穿透缓存层 优化方向 数据表数据类型优化 字段使用什么样的数据类型更合适 字段使用什么样...

  • mysql 语句积累

    1.查看并优化字段的数据类型 2.mysql update更新用法

  • 4、mysql基本数据类型

    [toc] MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种...

  • 2 MySQL数据类型

    2 MySQL数据类型   MySQL中定义数据字段的类型对你数据库的优化是非常重要的。   MySQL支持多种类...

  • PHP面试2

    自我介绍api接口安全redis的应用场景mysql优化redis的数据类型mysql存储引擎使用过哪些webse...

  • MySQL的数据类型

    MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以...

  • MySQL学习日记(五)-数据类型

    1、MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大...

  • MySQL 数据类型

    MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以...

网友评论

      本文标题:mysql 数据类型优化

      本文链接:https://www.haomeiwen.com/subject/oatglhtx.html