数据库性能测试,各位都有过这种经历,前台界面按照某些条件筛选查询的时候返回结果特别慢,通常情况就是数据库查询返回结果比较慢,所以先看下从前到后是怎么个查询数据流走向。
首先前端界面--勾选或者添加查询条件--经过一系列的转化,转化成sql语句,然后在数据库端执行,数据库端执行完,返回结果给前端展示。
这其中就涉及到你的查询条件转化为的sql语句是否够优秀了,
1、首先尽量避免全表扫描,例如 “select * from 表名这种,也就是你前端默认啥条件不选的时候不要展示全部的表,展示前两页或者有限条数的表,不然每次打开页面都是全表扫描,数据量到达一个量级以后,那是很头疼的一件事。
2、sql语句尽量避免全连接查询,同上道理,你要查找的范围越大,你要花的时间要越长。
3、在你知道查询语句的情况下,执行语句,并通过命令语句查看sql语句执行效率
3.1 查询在执行的sql ----show processlist 通过此条语句可以查看到有哪些语句在执行
3.2 explain 语句
explain SELECT * FROM t
------------恢复内容开始------------
数据库性能测试,各位都有过这种经历,前台界面按照某些条件筛选查询的时候返回结果特别慢,通常情况就是数据库查询返回结果比较慢,所以先看下从前到后是怎么个查询数据流走向。
首先前端界面--勾选或者添加查询条件--经过一系列的转化,转化成sql语句,然后在数据库端执行,数据库端执行完,返回结果给前端展示。
这其中就涉及到你的查询条件转化为的sql语句是否够优秀了,
1、首先尽量避免全表扫描,例如 “select * from 表名这种,也就是你前端默认啥条件不选的时候不要展示全部的表,展示前两页或者有限条数的表,不然每次打开页面都是全表扫描,数据量到达一个量级以后,那是很头疼的一件事。
2、sql语句尽量避免全连接查询,同上道理,你要查找的范围越大,你要花的时间要越长。
3、在你知道查询语句的情况下,执行语句,并通过命令语句查看sql语句执行效率
3.1 查询在执行的sql ----show processlist 通过此条语句可以查看到有哪些语句在执行
3.2 explain 语句
explain SELECT * FROM t
------------恢复内容结束------------