zoukankan      html  css  js  c++  java
  • Mysql 千万级别数据数据查询

    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 百万级别查询就会很慢
     
  • 相关阅读:
    Leetcode424. 替换后的最长重复字符
    Leetcode82. 删除排序链表中的重复元素 II
    python 无序模块,hashlib模块
    python 内置方法
    python 面向对象的三大特性
    python 面向对象
    python 递归函数和二分查找
    python 装饰器
    python 函数名,闭包
    python 函数进阶
  • 原文地址:https://www.cnblogs.com/zgzf/p/10310308.html
Copyright © 2011-2022 走看看