mysql分页性能优化:提高mysql大数据量下分页查询速度
发布时间:2020-12-25 14:28:55 所属栏目:编程 来源:网络整理
导读:《mysql分页性能优化:提高mysql大数据量下分页查询速度》要点: 本文介绍了mysql分页性能优化:提高mysql大数据量下分页查询速度,希望对您有用。如果有疑问,可以联系我们。 关于分页的优化。 我们知道,在MySQL中分页很简单,直接LIMIT page_no,page_tota
副标题[/!--empirenews.page--]
《mysql分页性能优化:提高mysql大数据量下分页查询速度》要点: 关于分页的优化。 原表: CREATE TABLE `t_group` ( `id` int(11) NOT NULL auto_increment, `money` decimal(10,2) NOT NULL, `user_name` varchar(20) NOT NULL, `create_time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_combination1` (`user_name`,`money`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 原表总记录数: mysql> select count(*) from t_group; +----------+ | count(*) | +----------+ | 10485760 | +----------+ 1 row in set (0.00 sec) 分页表: CREATE TABLE `t_group_ids` ( `id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`,`group_id`), KEY `idx_id` (`id`), KEY `idx_group_id` (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 插入分页表数据。当然这里如果你的表主键不是ID,那你得自己想办法搞这个分页表的数据了。这个好实现,就不说了。 mysql> insert into t_group_ids select ceil(id/20),id from t_group; Query OK, 10485760 rows affected (2 min 56.19 sec) Records: 10485760 Duplicates: 0 Warnings: 0 看到初始维护耗时较长 mysql> select * from t_group where 1 limit 20; +----+--------+-----------+---------------------+ | id | money | user_name | create_time | +----+--------+-----------+---------------------+ | 1 | 50.23 | david | 2008-10-23 12:55:49 | | 2 | 55.23 | livia | 2008-10-23 10:02:09 | | 3 | 100.83 | leo | 2008-10-23 10:02:22 | | 4 | 99.99 | lucy | 2008-10-23 10:02:39 | | 5 | 299.99 | simon | 2008-10-23 10:02:52 | | 6 | 599.99 | sony | 2008-10-23 10:03:03 | | 7 | 599.99 | rick | 2008-10-23 10:03:12 | | 8 | 9.99 | anne | 2008-10-23 10:03:47 | | 9 | 9.99 | sarah | 2008-10-23 10:04:31 | | 10 | 900.99 | john | 2008-10-23 10:04:50 | | 11 | 0.23 | david | 2008-10-23 10:05:31 | | 12 | 5.23 | livia | 2008-10-23 10:05:31 | | 13 | 50.83 | leo | 2008-10-23 10:05:31 | | 14 | 49.99 | lucy | 2008-10-23 10:05:31 | | 15 | 249.99 | simon | 2008-10-23 10:05:31 | | 16 | 549.99 | sony | 2008-10-23 10:05:31 | | 17 | 549.99 | rick | 2008-10-23 10:05:31 | | 18 | -40.01 | anne | 2008-10-23 10:05:31 | | 19 | -40.01 | sarah | 2008-10-23 10:05:31 | | 20 | 850.99 | john | 2008-10-23 10:05:31 | +----+--------+-----------+---------------------+ 20 rows in set (0.01 sec) (编辑:厦门网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |