|10分钟掌握MySQL的索引查询优化技巧
本文的内容是总结一些MySQL的常见使用技巧 , 以供没有DBA的团队参考 。 如无特殊说明 , 存储引擎以InnoDB为准 。
【|10分钟掌握MySQL的索引查询优化技巧】MySQL的特点
了解MySQL的特点有助于更好的使用MySQL , MySQL和其它常见数据库最大的不同在于存在存储引擎这个概念 , 存储引擎负责存储和读取数据 。 不同的存储引擎具有不同的特点 , 用户可以根据业务的特点选择适合的存储引擎 , 甚至是开发一个新的引擎 。
MySQL的逻辑架构大致如下:
本文插图
MySQL默认的存储引擎是InnoDB , 该存储引擎的主要特点是:
- 支持事务处理
- 支持行级锁
- 数据存储在表空间中 , 表空间由一些列数据文件组成
- 采用MVVC(多版本并发控制)机制实现高并发
- 表基于主键的聚簇索引建立
- 支持热备份
- MyISAM:老版本MySQL的默认引擎 , 不支持事务和行级锁 , 开发者可以手动控制表锁;支持全文索引;崩溃后无法安全恢复;支持压缩表 , 压缩表数据不可修改 , 但占用空间较少 , 可以提高查询性能
- Archive:只支持Insert和Select , 批量插入很快 , 通过全表扫描查询数据
- SCV:把一个SCV文件当做一个表处理
- Memory:数据存储在内存中
数据类型优化
选择数据类型的原则:
- 选择占用空间小的数据类型
- 选择简单的类型
- 避免不必要的可空列
整型类型
整型类型包括:
- tinyint
- smallint
- mediumint
- int
- bigint
本文插图
范围的数字 , 前面可以加unsigned修饰 , 这样可以让正数的可表示范围提高1倍 , 但是无法表示负数 。 另外 , 为整型指定长度没什么卵用 , 数据类型定下来 , 长度也就相应定下来了 。
小数类型
- float
- double
- decimal
decimal类型比较复杂 , 支持精确计算 , 占用的空间也大 , decimal使用每4个字节表示9个数字 , 如decimal(18,9)表示数字长度是18 , 其中小数位9个数字 , 整数部分9个数字 , 加上小数点本身 , 共占用9个字节 。 考虑到decimal占用空间较多 , 以及精度计算很复杂 , 数据量大的时候可以考虑用bigint代替之 , 可以在持久化和读取前对真实数据进行一些缩放操作 。
字符串类型
- varchar
- char
- varbinary
- binary
- blob
- text
- 枚举
推荐阅读
- 数据库|面试官:说说MySQL数据库分库分表,并且会有哪些问题?
- 小记|MySQL集群数据问题修复小记
- 通路|直播10分钟卖10万元,这家新通路联合仓是怎么做到的?
- 环球网|直播10分钟卖10万元,这家新通路联合仓是怎么做到的?
- |MySQL使用基础,这么用就对了
- |直播10分钟卖10万,这家新通路联合仓是怎么做到的?
- 科学|一个人10分钟能吞多少热狗?
- 5G|百瓦级闪充,满电10分钟!氮化镓概念欲展翅乘风?
- 手机|华为自研手机处理器或成绝唱?要想硬气还得掌握核心科技
- 手机|只有掌握了芯片技术,才能在移动市场占据先机,五大品牌你识几个