高性能mysql读书笔记(三)
来源:互联网 发布:阿里云加速器 编辑:程序博客网 时间:2024/05/22 14:12
三,mysql schema与数据类型优化
数据类型优化原则:更小的通常更好,简单的更好,少使用null。
整数类型:(whole number 和 real number),whole number可以使用tinyint,smallint,mediumint,int,bigint,分别占用8,16,24,42,64位。real number主要有float和double,支持浮点运算,float 和 double 容易产生误差,decimal存储精确的小数,申明语法为decimal(M,D),M整数位,D小数位。
字符串类型:字符串类型主要有varchar和char类型,varchar用于存储可变长的字符串,char用于存储变长的字符串。varchar需要一到两个字节存储字符串的长度。
blob和text:为存储很大的数据而设计的数据类型,blob采用二进制存储,text采用字符存储。当blob和text太大时,会存储一个指针指向外部的实际数据。
日期和时间类型:dateTime 时间从1001到9999年,封装为(yyyymmddhhmmss)格式,需要8个字节存储,精确到秒。timestamp从1970年开始,,需要4个字节,精确到秒,时区。
bit位存储类型,set类型,位的集合。
schema设计
schema 设计需要避免的问题:太多的列,太多的关联,太多的枚举,变相的枚举。
范式与反范式
范式:数据唯一存储在数据库中,没有冗余,保证一致性。
发范式:数据有冗余,减少多表交叉查询,可以提高查询速度。
缓存表与汇总表
实现实时统计是很昂贵的操作,这需要扫描数据库中大部分数据,通过间隔分时汇总表+小范围的实时减少数据库负载。
物理化视图和计数器表
物理化视图实际通过预先计算并存储到物理磁盘上的表,通过策略刷新和更新。
计数器表:主要通过update set num=num+1,这种会有并发的问题,只能串行执行。也可以存储多行,通过sum进行并行统计。
加快alter table 的速度
mysql执行修改表结构的操作:新建一个新表,将旧表的数据插入到新表中去,然后删除旧表。
对于常见的场景主要有两种方式进行:一,先在一台空闲的服务器上执行alter table,之后与主库进行切换。二,建一个别名的表,之后通过删除与重命名替换旧表。
因为表的结构和属性信息在.frm文件中,可以直接修改.frm文件。
阅读全文
0 0
- 高性能MySQL.读书笔记(三)复制
- 高性能mysql读书笔记(三)
- 查询性能优化(高性能mysql读书笔记三)
- 高性能MySQL读书笔记
- 高性能mysql读书笔记
- 高性能mysql读书笔记
- 高性能MYSQL读书笔记.
- 《高性能MySQL》读书笔记
- 《高性能MySQL》读书笔记
- 《高性能 MySQL》读书笔记
- 高性能mysql读书笔记
- 高性能MySQL读书笔记
- 【高性能Mysql】读书笔记
- 《高性能MySQL》读书笔记
- 创建高性能索引(高性能mysql读书笔记二)
- 高性能Mysql读书笔记(第一章)
- 高性能mysql的读书笔记(一)
- 高性能mysql读书笔记(一)
- 正则表达式(php)
- Spring MVC 中的基于注解的 Controller
- EXCEL表格 显示 超长 数字 E+ 变成 文本格式,数字全部显示
- C#索引器:在集合或数组中取出某一个元素 举例
- JavaWeb
- 高性能mysql读书笔记(三)
- [Unity&继承]类的内部类继承的结果
- 一体机联想键盘如何关闭Fn功能键恢复F1~F12
- 新建Angular2项目
- 微信小程序开发跳坑(1-50)
- unity接入微信支付-Android篇
- 既有接口,为何还要抽象类
- jquery实战总结
- 百度分享代码--一键分享Baidu Share BEGIN