博客目录
一、MySQL的优化
1.查看sql执行频率
定位低效率执行sql:
- 慢查询日志:通过慢查询日志定位那些执行效率较低的sql语句。
- show processlist:该命令查看当前MySQL在进行的线程,包括线程的状态、是否锁表等,可以实时地查看sql的执行情况,同时对一些缩表操作进行优化
慢查询日志
show processlist
2.explain分析执行计划
(通过以上步骤查询到效率低的sql语句后,可以通过explain命令获取MySQL如何执行select语句的信息,包括在select语句执行过程中表如何连接和连接的顺序)
Explain 之 id
- id相同表示加载表的顺序是从上到下
- id 不同id值越大,优先级越高,越先被执行
- id 有相同,也有不同,同时存在。id相同的可以认为是一组,从上往下顺序执行,在所有的组中,id的值越大,优先级越高,越先执行
Explain 之 select_type
Explain 之 type
其他指标字段
3.trace分析优化器执行计划
4.大批量插入数据
5、insert优化
二、jdbc操作
(通过Java代码对MySQL数据库进行操作)
对MySQL数据库进行控制的流程
public class jdbcDemo01 {
public static void main(String[] args) throws SQLException {
// 1.注册驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 2.获取连接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybd05", "root", "lzj2357111317");
// 3.执行sql
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from student");
// 4.处理结果集
while (resultSet.next()){
// 获取每一列数据
int sid = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
System.out.println(sid + "\t" + name + "\t" + age);
}
// 5.关闭连接
resultSet.close();
statement.close();
connection.close();
}
}