软件环境:win7,mysql版本5.5,InnoDB存储引擎。

硬件环境:普通笔记本,CPU P8700双核2.53GHz,内存3G,5400转机械硬盘1000GB。

建了一张表,id列是自增长bigint,再加上其他varchar、datetime型的字段,总共8个字段,通过java生成了insert的sql文件,一共62个文件,每个文件50万行(约88M),总共3100万行记录(约5.35G),通过source导入,从中午1:30一直到18:00才导完,花了快4个半小时,导完后,数据文件大小约2.5G。后来听说用load data infile可以加快导数据时间,改天再试试。

结论1:由此可见,mysql单表支持1000万条数据是完全可行的。

此时只有id列上有主键,聚集索引,测试开始。

1、整表数据行数统计(select count)

select count(*) from t_test;

返回3100万条数据足足花了1分21秒,多次测试取平均值,也差不多要1分6秒。

select count(n_id) from t_test;

返回3100万条数据也要1分多,感觉比count(*)性能好不了多少,难道是数据量级还不够大?

给n_id建了一个非聚集索引,create index idx_nid on t_test(n_id) 耗时4分43秒。

再次 select count(n_id) from t_test;

返回3100万条数据耗时13.52秒;快了不少!

select count(*) from t_baginfo;

返回3100万条数据耗时12.86秒;比count(n_id)快约700毫秒;

结论2:在只有聚集索引的情况下,再给主键列建一个非聚集索引后,select count(*)速度可以得到很大提升

2、分页测试

a、取1万行后面10行记录:

select * from t_test limit 10000,10;耗时0.03秒

只取n_id

select n_id from t_test limit 10000,10;耗时0.01秒

b、取10万行后面10行记录:

select * from t_test limit 100000,10;耗时0.14秒

只取n_id

select n_id from t_test limit 100000,10;耗时0.08秒

c、取100万行后面的10行记录:

select * from t_test limit 1000000,10;耗时1.69秒

只取n_id

select n_id from t_test limit 1000000,10;耗时0.77秒

d、取1000万行后面的10行记录:

select * from t_test limit 10000000,10;耗时17.86秒

select * from t_test where n_id>(select n_id from t_test  limit 9999999,1 ) limit 10; 耗时18.27秒

加n_id排序:

select * from t_test order by n_id limit 10000000,10;耗时18.14秒

select * from t_test where n_id>(select n_id from t_test order by n_id limit 9999999,1 ) limit 10; 耗时18.27秒

只取n_id

select n_id from t_test limit 10000000,10;耗时4.22秒

select n_id from t_test where n_id>(select n_id from t_test  limit 9999999,1 ) limit 10; 耗时5.51秒

加n_id排序:

select n_id from t_test order by n_id limit 10000000,10;耗时17.25秒

select n_id from t_test where n_id>(select n_id from t_test order by n_id limit 9999999,1 ) limit 10; 耗时17.98秒

mysql单表1000万条_mysql单表千万条数据测试相关推荐

  1. mysql造1000万数据_MySQL制作具有千万条测试数据的测试库

    有时候需要制造一些测试的数据,以mysql官方给的测试库为基础,插入十万,百万或者千万条数据.利用一些函数和存储过程来完成. 导入官方的数据库,做了一些简化,留下了部门表,员工表和雇佣表三张表,去掉了 ...

  2. Python网络爬虫实践(1):爬取网易云音乐播放量大于1000万的歌单

    Python网络爬虫实践(1) 一.需求分析 爬取网易云音乐播放量大于1000万的歌单. 二.实施步骤 1.安装selenium selenium是一个用于Web应用自动化程序测试的工具,测试直接运行 ...

  3. 批量往mysql里面插入1000万条数据_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  4. mysql修改表中学生姓名 专业_MySQL单表练习

    1.创建一个名称为mydb1的数据库. Create databasemydb1; 2.创建一个使用utf8字符集的mydb2数据库. createdatabasemydb2charsetutf8; ...

  5. 我有一个订单系统,订单日增加1000万,怎么设计表

    2017年6月14日 Mysql TPS 可以达到1000/S 下面的某些结论需要重新考察 ====================================================== ...

  6. mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  7. mysql 查询多个记录查询_MySQL多表数据记录查询详解

    在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...

  8. mysql 表 视图 索引吗_Mysql多表查询, 视图,事务,索引,函数,go连接数据库

    1.1 今日目标 理解多表查询 理解子查询 能够创建视图 能够删除视图 能够查看创建视图的SQL语句 能够理解事务的作用 能够操作事务 理解索引的作用 能够创建索引 能够删除索引 知道常用的函数 了解 ...

  9. mysql 多表查询计算平均_MYSQL多表查询

    一. 课堂练习以及知识点 表的加法 含义:将两个表按行合并在一起,用union将两个表中的结果合并在一起 案例 select 课程号,课程名称 from course union select 课程号 ...

最新文章

  1. dns tunnel 使用 nishang 下载TXT里的cmd(TXT里)实现CC command+ ceye实现数据外发
  2. 数学在机器学习中的重要性[by Dahua Lin]
  3. MathType如何保存常用公式
  4. 鸿蒙自研系统,华为已注册“华为鸿蒙”商标,自研操作系统最快秋季发布
  5. Myeclipse中weblogic配置
  6. ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
  7. NLP深度学习:近期趋势概述(二)
  8. c语言字符串传给swift,如何把字符串数组从 Swift 传递给 C
  9. 1.6_quick_sort_快速排序
  10. linux中程序包管理方式出现的原由(转载)
  11. 玩转Python大数据分析 《Python for Data Analysis》的读书笔记-第08页
  12. jsf面试题_JSF面试问答
  13. python 句子中没有中文_使用python进行汉语分词
  14. 三菱plc pwm指令_常用PLC各系列简介大全,选型必看!
  15. 电力仿真需要学的软件?5款有实力的电力仿真软件
  16. bp神经网络预测模型流程图,bp神经网络实例分析
  17. 极光im java,连接极光异常是什么原因
  18. 学习和使用技术的4种层次
  19. windows 下配置 Nginx 常见问题
  20. 乐天店铺网页制作、装修简要教程

热门文章

  1. kube-proxy 切换为ipvs模式
  2. 关于ORACLE_SQL,都在这里了!!!
  3. 看不懂的程序员,蹲墙角反思去!
  4. bzoj 2244: [SDOI2011]拦截导弹 cdq分治
  5. 《大学两年的摸爬滚打:新征程》
  6. MRCC和SRCC的理解
  7. 大幅提升冲浪效率,搜狗高速浏览器3.0
  8. 【C语言习题】统计君君提水的桶数(不使用ceil函数与floor函数)
  9. matlab butter()函数解析
  10. IP地址管理工具——netbox——全