1.構建數據
--創建MyISAM模式表方便批量跑數據 CREATE TABLE `logs1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `logtype` varchar(255) DEFAULT NULL, `logurl` varchar(255) DEFAULT NULL, `logip` varchar(255) DEFAULT NULL, `logdz` varchar(255) DEFAULT NULL, `ladduser` varchar(255) DEFAULT NULL, `lfadduser` varchar(255) DEFAULT NULL, `laddtime` datetime DEFAULT NULL, `htmlname` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1811 DEFAULT CHARSET=utf8 COMMENT='日志表';
--創建存儲過程 DROP PROCEDURE IF EXISTS my_insert; CREATE PROCEDURE my_insert() BEGIN DECLARE n int DEFAULT 1; loopname:LOOP INSERT INTO `logs1`(`logtype`,`logurl`,`logip`,`logdz`,`ladduser` ,`lfadduser`,`laddtime`,`htmlname`) VALUES ( 2, '/index', '0:0:0:0:0:0:0:1', null, null, 'null', '2018-05-03 14:02:42', '首頁'); SET n=n+1; IF n=10000000 THEN LEAVE loopname; END IF; END LOOP loopname; END; --執行存儲過程 CALL my_insert();
--數據插入成功后修改表模式InnoDB 時間稍微久點 alter table `logs1` engine=InnoDB;
2.查詢
(1)SELECT COUNT(id) FROM test.logs1
結果: 99999999
(2)SELECT * FROM test.logs1 ORDER BY id ASC LIMIT 100000,100
結果: [SQL] SELECT * FROM test.logs1 ORDER BY id ASC LIMIT 100000,100
受影響的行: 0
時間: 0.169s
(3)SELECT * FROM test.logs1 ORDER BY id ASC LIMIT 1000000,100
結果:[SQL] SELECT * FROM test.logs1 ORDER BY id ASC LIMIT 1000000,100
受影響的行: 0
時間: 4.644s
mysql 百萬級別查詢就會很慢