高效的mysql分页方法及原理?
一,最常见MYSQL最基本的分页方式:
select * from content order by id desc limit 0, 10
在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:
select * from content order by id desc limit 10000, 10
就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。
此时,可以通过2种方式:
一,子查询的分页方式来提高分页效率,飘易用的SQL语句如下:
SELECT * FROM content WHERE id> (SELECT id FROM content ORDER BY id desc LIMIT ".($page-1)*$pagesize.", 1) ORDER BY id desc LIMIT $pagesize
为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。(via)通过explain SQL语句发现:子查询使用了索引!
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY content range PRIMARY PRIMARY 4 NULL 6264 Using where
2 SUBQUERY content index NULL PRIMARY 4 NULL 27085 Using
首先看一下分页的基本原理:
复制代码 代码如下:
mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G ***************** 1. row ************** id: 1 select_type: SIMPLE table: message type: index possible_keys: NULL key: PRIMARY key_len: 4 ref: NULL rows: 10020 Extra: 1 row in set (0.00 sec)
mysql数据库怎么删除干净?
卸载干净MySQL的步骤:首先关闭MySQL服务;然后卸载MySQL软件;接着删除MySQL在电脑中的残存文件;最后删除MySQL注册表信息即可。
很多人都遇到过一个问题,那就是在安装MySQL的时候操作错误,最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净,那么如何把MySQL卸载干净?下面本篇文章就来给大家一步步介绍将mysql卸载干净的方法,希望对大家有所帮助。
步骤1:关闭MySQL服务
右击【计算机】,选择【管理】,打开“计算机管理”界面
选择【服务和应用程序】中的【服务】,在右侧找到【mysql】,右键,选择【停止】
步骤2:卸载mysql软件
可以在控制面板中卸载
也可以使用软件管家来卸载
步骤3:删除MySQL在电脑硬盘上物理位置上的所有文件
1、卸载过后删除C:\Program Files (x86)\MySQL该目录下剩余了所有文件,把mysql文件夹也删了
2、删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL文件夹,如果没有可以不用删除了。
3、删除C盘下的C:\ProgramData\MySQL 所有文件,如果删除不了则用360粉碎掉即可,该programData文件是隐藏的默认,设置显示后即可见
4、关键!!!!删除C:\Documents and Settings\All Users\Application Data\MySQL下的文件夹,一定要删
注:可以通过window系统自带的关键字查找功能来查找相关联的文件
步骤4:MySQL的注册表信息
注:这步是最繁琐的也是最为关键的,很多人就是因为在这步骤中没有清理干净注册表信息,从而不能重新安装成功。
1、windows+R运行“regedit”文件,打开注册表
2、删除注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹
步骤5:重启下电脑
这样就可以重新安装MySQL软件了!