《高性能MySQL》之选择优化的数据类型
1:前言
2:几个原则
- 更小的通常更好---满足存储需要的情况下使用最小的数据类型,因为占用更小的磁盘,内存和cpu缓存,并且处理需要的cpu周期也更少。举个例子:我们经常使用status 为 0,1 表示状态,这里使用TINYINT(-128-127)类型已经足够,不必使用int。
- 简单就好---简单数据类型的操作通常需要使用更小的CPU周期,整型比字符操作代价更低。
- 尽量避免Null--- 以前我们表中包含很多为NULL的列,即使不需要保存Null,通常情况下最好指定为Not NULL,除非真的需要。原因:1:优化需要,对于查询包含为NULL的列,会使索引,索引统计和值比较复杂,NULL会使用更多的存储空间,当NULL列被索引时需要一个额外的字节。2:程序问题,如果你domain中的变量没有定义成包装类,查询时不能将NULL保存到数据。所以这里同时建议程序中使用Integer 代替 int 在domain中。
3:整数类型
4:实体类型
5:字符串类型
varchar
使用情况:如果字符串列的最大长度比平均长度大很多;列的更新很少,所以碎片不是问题;使用了UTF-8这样的复杂字符集。
Char
6:日期和时间类型
timestamp
《高性能MySQL》之选择优化的数据类型相关推荐
- 高性能MySQL——查询性能优化
在数据库设计中,如果查询写得很糟糕,即使库表结构设计再合理,索引再合理也无法实现高性能. 1.优化数据访问 查询性能低下最基本的原因是访问的数据太多.对于低效的查询,通过以下两步来分析总是很有效: 确 ...
- 高性能MySQL -- 查询性能优化
一般来说一个好的程序:查询优化,索引优化,库表结构要同时进行优化.今天我们来讲一下查询优化. 我们需要对MySQL的架构有基本认知,所以这里贴一张图大家看看: 图片来自于<小林coding> ...
- 高性能MySQL(2)——Schema与数据类型的优化
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计 schema,这往往需要权衡各种因素. 一.选择优化的数据类型 MySQL支持的数据类型非常多,选择正确的数据类型对于获得 ...
- 《高性能MySQL》阅读-MySQL选择数据类型
二. Schema与数据类型优化 20210112 02:30-03:40整理 [素还真]诗号: 半神半圣亦半仙,全儒全道是全贤: 脑中真书藏万卷,掌握文武半边天. 选择优化的数据类型 选择原则: ① ...
- mysql表设计很多非常大的varchar_聊一聊数据库(MySQL)设计中的数据类型优化
良好的逻辑设计和物理设计事高性能的基石,在进行数据库设计时,我们应该要考虑到未来将会执行的查询语句,这就需要对各种因素进行权衡.本文将会聊一聊数据库(MySQL)设计中有关数据类型优化的一些内容.以下 ...
- 高性能MySQL(第二版)第三章 架构优化和索引(上)——读书笔记
一,选择优化的数据类型 更小通常更好 更小的数据类型使用了更少的磁盘,内存和CPU缓存 但是要确保不要低估需要保存的值,在架构中的多个地方增加数据类型的范围是一件极其费时费力的工作.如果不确定需要什么 ...
- MySQL各种优化基于《高性能MySQL第三版》
[TOC] MySQL各种优化 查询优化 查询优化器模块 查询优化器的任务是发现执行 SQL 查询的最佳方案.大多数查询优化器,要么基于规则.要么基于成本. 大多数查询优化器,包含 MySQL 的查询 ...
- 高性能mysql_「高性能MySQL」十年阿里架构师推荐,这份高性能MySQL文档送给你
MySQL MySQL的概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方 ...
- 高性能mysql知识总结大全
高性能mysql知识总结大全 vii 目录 Contents 推荐序- I 前言- III 第 1 章 MySQL 架构- 1 1.1 MySQL 的逻辑架构 - 1 1.2 并发控制 - 3 1.3 ...
- 高性能MySQL(第3版)(MySQL旗舰名著 惊献全面升级)
高性能MySQL(第3版)(MySQL旗舰名著 惊献全面升级) [美]施瓦茨(Schwartz,B.)[美]扎伊采夫(Zaitsev,P.) [美]特卡琴科(Tkachenko,V.) 著 宁海元 ...
最新文章
- 用Python分析北上广深租房情况,租房时优先考虑哪些因素?
- mkdir命令使用详解
- NYOJ 108士兵杀敌(一)
- SAP-HR三大结构
- html兄弟选择器怎么用,CSS的相邻兄弟选择器用法示例讲解
- ITK:图像的区域最大值
- .md是什么文件_Element-UI源码阅读之md显示到页面
- centos7已有数据硬盘挂载_干货!如何给虚拟机增加虚拟硬盘,Linux再分区挂载
- Java番外篇4——BigInteger与BigDecimal
- Mr.J--C语言头函数的建立(附严薇敏《数据结构》线性表代码)
- Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数...
- 【Siddhi】Siddhi的语法关键字
- 由于3²+4²=5²,所以称‘3,4,5‘为勾股数,求n(包括n)以内所有勾股数数组。
- 在Linux上安装ant环境
- ❤️缓存集合(一级缓存、二级缓存、缓存原理以及自定义缓存—源码+图文分析,建议收藏) ❤️
- IT人 不要一辈子靠技术生存(转
- 海康威视摄像头忘记密码后如何重置
- CF896C Willem, Chtholly and Seniorious(珂朵莉树)
- 1.1 极限的概念【极限】
- 10种食物 让你快乐每一天