Mysql优化之索引和字段
2024-10-14 06:58:44
Mysql优化是一个老生常谈的问题,
优化的方向也优化很多:从架构层;从设计层;从存储层;从SQL语句层;
今天讲解一下从索引和字段:
字段优化:
① 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED;
② VARCHAR的长度只分配真正需要的空间;
③ 使用枚举或整数代替字符串类型;
④ 尽量使用TIMESTAMP而非DATETIME;
⑤ 单表不要有太多字段,建议在20以内;
⑥ 避免使用NULL字段,很难查询优化且占用额外索引空间;
⑦ 用整型来存IP;
索引优化:
① 索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描;
② 应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描;
② 值分布很稀少的字段不适合建索引,例如”性别”这种只有两三个值的字段;
③ 字符字段只建前缀索引;
④ 字符字段最好不要做主键;
⑤ 不用外键,由程序保证约束;
⑥ 尽量不用UNIQUE,由程序保证约束;
⑦ 使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引;
后续会更新其余方面针对Mysql优化的建议.有疑问请直接给我留言.
最新文章
- jQuery仿阿里云购买选择购买时间长度
- Java学习笔记,第三章
- WPF入门教程系列五——Window 介绍
- android java数组应用与说明
- Maven_根据不同个环境打包, 获取不同的配置文件等等
- Entity FrameWork 延迟加载本质(二)
- .net Int16 、(int Int32)、 Int64 的区别
- 分布式MySQL 数据库
- 防火墙设置:虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
- C/C++学习站点资源
- 跟我一起学习VIM - The Life Changing Editor
- VC++代码的汇编分析(一)
- PHP基础之 file_get_contents() 函数
- JDK源码学习--String篇(三) 存储篇
- CSS3属性值之box-shadow
- [android] android下文件访问的权限
- java中级——二叉树比较冒泡和选择排序
- Django 知识总结(一)
- topcoder srm 415 div1
- Linux下的JDK和OpenJDK有什么具体的区别
热门文章
- Eureka restTemplate访问超时
- ***OneinStack交互安装FAQ和管理服务常用命令
- No enclosing instance of type Test is accessible. Must qualify the allocation with an enclosing instance of type Test (e.g. x.new A() where x is an instance of Test).
- Ionic2中腾讯Bugly异常捕获以及上报
- UOJ#103. 【APIO2014】Palindromes PAM模板题
- Android进阶:七、Retrofit2.0原理解析之最简流程【上】
- Paxos协议超级详细解释+简单实例
- Linux文件名匹配和输出重定向--2019-4-24
- 与下位机或设备的通信解析优化的一点功能:T4+动态编译
- CentOS7部分调优命令