建表与插入数据

SQL对比

基本数据

创建表

CREATE TABLE student

(

id int(10) NOT NULL AUTO_INCREMENT,

name varchar(25) DEFAULT NULL,

age tinyint(2) DEFAULT NULL,

live varchar(255) DEFAULT NULL,

PRIMARY KEY (id)

) ;

批量插入1百万条数据

DROP PROCEDURE IF EXISTS insert_Stu;

DELIMITER $$

CREATE PROCEDURE insert_Stu(IN max_num INT(10))

BEGIN

DECLARE i INT DEFAULT 0;

REPEAT

SET i = i + 1;

INSERT INTO student (name, age, live) VALUES (rand_string(3), rand_num(), rand_string(6));

UNTIL i = max_num

END REPEAT;

COMMIT;

END $$

DROP PROCEDURE IF EXISTS rand_string;

DELIMITER $$

CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)

BEGIN

DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';

DECLARE return_str VARCHAR(255) DEFAULT '';

DECLARE i INT DEFAULT 0;

WHILE i < n DO

SET return_str = CONCAT(return_str, SUBSTRING(chars_str, FLOOR(1 + RAND() * 52), 1));

SET i = i + 1;

END WHILE;

RETURN return_str;

END $$;

DROP PROCEDURE IF EXISTS rand_num;

DELIMITER $$

CREATE FUNCTION rand_num()

RETURNS INT(5)

BEGIN

DECLARE i INT DEFAULT 0;

SET i = FLOOR(100 + RAND() * 10);

RETURN i;

END $$

;

call insert_Stu(1000000);

SQL对比

常规分页

select s.* from student s limit 1000000,10;

优化分页

select s.*

from student s

WHERE s.id >= (SELECT s.id FROM student LIMIT 1000000, 1)

LIMIT 10;

最优分页

SELECT s.* FROM student s WHERE s.id BETWEEN 1000000 AND 1000010;

性能对比图

可以看到三种SQL的耗时 ,为什么会有这么大的差距,这主要是MySQL的limit关键字会导致偏移量的原因

mysql insert limit_Mysql Limit 调优相关推荐

  1. mysql memory=off_MySQL内存调优

    原文链接: MySQL Memory Allocation -- by Rick James 原文日期: Created 2010; Refreshed Oct, 2012, Jan, 2014 翻译 ...

  2. mysql监控、性能调优及三范式理解

    @酷勤网-程序员的那点事 <mysql监控.性能调优及三范式理解>下文介绍了关于mysql监控.性能调优及三范式理解的内容.mysql监控.性能调优及三范式理解(来自: 博客园 ) @酷勤 ...

  3. MySQL 开发日志 -- 性能调优

    * mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];选项解析:IN 'log_n ...

  4. [转]mysql性能的检查和调优方法

    [转]mysql性能的检查和调优方法 来源:http://www.sudone.com/linux/mysql_debug.html 作者:Ayou 我一直是使用mysql这个数据库软件,它工作比较稳 ...

  5. MySQL 索引和 SQL 调优手册

    MySQL索引 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等.为了避免混乱,本文将只关注于BTree ...

  6. MySQL索引和SQL调优手册

    MySQL索引 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等. 为了避免混乱,本文将只关注于BTre ...

  7. mysql的where字句调优_mysql中select和where子句优化的总结

    本篇文章给大家带来的内容是关于mysql中select和where子句优化的总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据库优化: 1.可以在单个SQL语句,整个应用程序, ...

  8. mysql binary-mode=1_Mysql 性能调优 二 1

    Mysql 性能调优 二  1 关系型数据库中,最耗资源的sql操作: 关联表与排序 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  9. MySQL数据库监控与调优(2)

    索引数据结构 1.二叉树,极端情况有可能会出现在一边的情况,二叉树就变成了链表 2.平衡二叉搜索树(AVL 树) 每个节点的左子树和右子树的高度差不超过1 对于n个节点,数的深度是log2n ,查询的 ...

最新文章

  1. 面试必备,各种技术知识集大成之项目~
  2. 新代系统plc梯形图说明书_东莞自动化PLC编程需要多少钱
  3. 跨域访问被禁止的演示示例
  4. 【w3cschool】PHP语法简单复习
  5. idea代码补全_IDEA中有哪些让你相见恨晚的技巧?
  6. import torch 找不到模块_15天Python入门-15-模块与包
  7. Node.js入门:文件查找机制
  8. 即刻app暂停服务?趁现在教你一步一步实现即刻点赞效果
  9. python建模_python建模实例详解
  10. 一个萌新关于电脑安装软件错误提示“1402”的应对方法
  11. VMP.Net 3.5 脱壳
  12. 基于单片机的红绿黄灯设计(单片机实验交通灯设计)
  13. 头条是一款遵循材料设计(Material Design)的第三方今日头条客户端, 聚合了新闻/段子/图片/视频/头条号内容, 没有广告, 仅仅只有存粹的阅读, 不断完善中, 采用 MVP + RxJa
  14. 国内有那些chia矿池,chia矿池排行那几家比较靠谱
  15. Unity中实现赛车游戏
  16. 如何实现国外域名调转到国内已备案ip
  17. 2017年网易实习程序员面试题
  18. hdu-4933-Miaomiao's Function(BC#4 1003)
  19. 开机报错0190: critical low-battery error的解决方案
  20. 微波雷达传感器模块,人体雷达感知存在,场景智能联动

热门文章

  1. neo4j cypher_Neo4j:Cypher –避免热切
  2. input发送a.jax_Java EE 7 / JAX-RS 2.0 – REST上的CORS
  3. Java:可选的可选实现
  4. 使用Spring Boot和MongoDB构建一个反应式应用程序
  5. structure101_使用structure101分析软件包的依赖关系
  6. Zuul 2 –样本过滤器
  7. 过滤器匹配符包含单词_Hamcrest包含匹配器
  8. spring tiles_Spring MVC 3模板和Apache Tiles
  9. javaone_JavaOne 2012:使用HTML5和Java构建移动应用程序
  10. apache shiro_Apache Shiro第1部分–基础