11. SQL优化
11.1 参考
-
mysql常用的优化方法有哪些
可以从架构优化,硬件优化,DB优化,SQL优化:
11.2 8种方式
- 选取最适用的字段属性
- 使用连接(JOIN)来代替子查询(Sub-Queries)
- 使用联合(UNION)来代替手动创建的临时表
- 事务:事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,这样可以保证用户的操作不被其它的用户所干扰。
- 锁定表
- 使用外键
- 使用索引
- 优化的查询语句
11.3性能优化
11.3.1 表的设计合理化,符合三大范式(3NF)
- 1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF)
- 2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
- 3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计可以做到。
11.3.2 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]
- 较频繁的作为查询条件字段应该创建索引;
- 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件;
- 更新非常频繁的字段不适合创建索引
- 不会出现在WHERE子句中的字段不该创建索引
11.3.3 SQL语句优化
- 通过show status命令了解各种SQL的执行频率;
- 定位执行效率较低的SQL语句-(重点select;
- 通过explain分析低效率的SQL;
- 确定问题并采取相应的优化措施。
11.3.4 其他
- 分表技术(水平分割、垂直分割);
- 读写[写: update/delete/add]分离;
- 存储过程 [模块化编程,可以提高速度];
- 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ];
- mysql服务器硬件升级;
- 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)。
MVCC机制见本专栏下一篇
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123959.html