1.MySQL分页查询:
一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于指定 SELECT 语句返回的记录数。需注意以下几点:
- 第一个参数指定第一个返回记录行的偏移量,注意从
0
开始 - 第二个参数指定返回记录行的最大数目
- 如果只给定一个参数:它表示返回最大的记录行数目
- 第二个参数为 -1 表示检索从某一个偏移量到记录集的结束所有的记录行
- 初始记录行的偏移量是 0(而不是 1)
这种分页查询方式会从数据库第一条记录开始扫描,所以越往后,查询速度越慢,而且查询的数据越多,也会拖慢总查询速度。
2.MySQL查询语句优化
1)查看执行计划,找出执行速度慢的sql语句:
explain select max(payment_date) from payment ;
2)对查询频率高的字段创建索引,提高查询速度:
alter table undergraduate_students add index school_roll (school_roll) ; #加字段索引
show index from tblname; #查看索引
3.MySQL常用命令
show create table tasks; 或desc table_name; #查看建表信息
truncate card_transactions; #mysql清空表数据
reset query cache; #清除数据库缓存
show full columns from tablename; #查看表编码类型
status; 或 select version(); 或$ mysql --help | grep Distrib #查看数据库版本
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; #查看数据库所有用户及权限
flush privileges; #刷新系统权限表
SET GLOBAL max_allowed_packet=4194304; #设置最大信息包
SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'; #查看信息包最大值
参考资料:
MySQL分页查询优化:https://www.cnblogs.com/youyoui/p/7851007.html
高性能MYSQL(查询优化):https://blog.csdn.net/qq_23211905/article/details/73473393
MySQL Explain详解:https://www.cnblogs.com/xuanzhi201111/p/4175635.html