測試數據創建
1.新建表
CREATE TABLE `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `city` varchar(16) NOT NULL COMMENT '城市', `name` varchar(16) NOT NULL COMMENT '姓名', `age` int(11) NOT NULL COMMENT '年齡', `addr` varchar(128) DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`), KEY `city` (`city`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
2.刷測試數據存儲過程新建
-- 聲明存儲過程 DELIMITER // CREATE PROCEDURE callback() begin declare num int; set num = 1; LOOP_LABLE : loop INSERT INTO user_info(id,city,`name`,age,addr) VALUES(num,CONCAT("成都", num),CONCAT("小李", num),CONCAT(num),CONCAT("高新區",num)); set num = num + 1; if num >= 100000 then leave LOOP_LABLE; end if; end loop; end;
3.執行存儲過程
CALL callback();
4.刪除存儲過程
drop procedure IF EXISTS callback;
5.再重新創建存儲過程並執行
CREATE PROCEDURE callback() begin declare num int; set num = 100000; LOOP_LABLE : loop INSERT INTO user_info(id,city,`name`,age,addr) VALUES(num,"廣州",CONCAT("小李", num),CONCAT(num),CONCAT("高新區",num)); set num = num + 1; if num >= 200000 then leave LOOP_LABLE; end if; end loop; end;
兩種排序算法
全字段排序
我們在工作中常常使用這一的寫法
select * from user_info i where i.city='成都1' order by age desc limit 400,100
對應執行計劃執行計劃各個列解讀可以參考跳轉