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 百万级别查询就会很慢
     
  • 相关阅读:
    Construction构造函数
    映射验证
    映射设置
    条件映射
    映射前和映射后的操作
    AutoMapper 5.0-升级指南
    Bootstrap Tree View
    MiniProfiler使用笔记
    关于添加数据自定义编号格式问题
    【Postgresql】数据库函数
  • 原文地址:https://www.cnblogs.com/zgzf/p/10310308.html
Copyright © 2011-2022 走看看