[关闭]
@wxf 2018-04-09T13:22:57.000000Z 字数 3182 阅读 1170

性能优化相关问题整理

面试系列


MySQL数据库(5.6)优化

原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。
参考:
HikariCP连接池监控指标实战
MySQL 的索引是什么?怎么优化?

查询优化

使用EXPLAIN查看SQL执行计划,重要关注点包括:type(连接类型)、possible_keys(建议使用的索引)、key(使用的索引)。
连接类型的理想状态包括:system、const、eq_ref、ref、ref_or_null。

使用索引查询注意事项

索引可以提供查询的速度,但并不是使用了带有索引的字段查询都会生效,有些情况下是不生效的,需要注意!
mysql索引总结----mysql 索引类型以及创建
MySQL的btree索引和hash索引的区别

子查询优化

MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然很灵活,但是执行效率并不高。因为执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响。
优化:
可以使用连接查询(JOIN)代替子查询,连接查询时不需要建立临时表,其速度比子查询快。

扩展-连接查询:
1. 内连接(inner join 或 join),它是等值连接,它使用“=、>、<、<>”等运算符根据每个表共有的列的值匹配两个表中的行。

2. 左连接(left join 或 left outer join), 左连接又称左向外连接,查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示。

3. 右连接(right join 或 right outer join),右连接也成右向外连接,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则用空值表示。

4. 完全外连接(full join 或 full outer join),完全外连接,查询的结果集包括SQL语句中左表和右表的所有行。如果某行在另一个表中没有匹配行时,则用空值表示。

总结:SQL中连接查询分内、外连接,外连接分左连接、右连接和完全外连接,它们的功能与视图差不多。其中左右连接查询是相对应的,即把连接类型和左表、右表互换位置就可得到相同的结果集。

数据库结构优化

将字段很多的表分解成多张表

添加中间表

添加冗余字段

插入数据的优化

数据库引擎

服务器优化

硬件优化

优化MySql的参数

Tomcat7优化

通过优化Tomcat提高网站的并发能力

JVM优化

适当调整Tomcat运行的JVM参数可以提升整体性能

Java内存模型分为年轻代(Young)、终生代(Tenured)、永久带(Perm)。其中

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注