mysql千万级数据查询select、插入insert慢 可能原因总结

表连表查询 并 insert ,insert into …select …from…

insert into T1(XX,XX)
select T2.date,
T3.time
from T2 b inner join (select * from T3)c on c.XX=b.XX;

1.(select * from T3)c 与 T3 表名直接写 ,这两种写法亲自测试有些细微的耗时差距,具体我也不清楚,可以亲自试验一下自行选择

2.inner join…on… 与 select …from …where…二者写法耗时结果差别不大

3.能用双表联查就千万千万不要用三表联查,哪怕第三个表只有几十条数据,查询耗时也是成指数级上升的

我选择双表联查生成临时表再与第三个表联查,速度快很多

4. 条件的选择 on… /where …

尽量使用on/where …XXX = T2.XXX 而不是 in (…xxx.,xxx)二者查询时间差距非常大

5.主表有条件先select一遍主表,关联表有条件最好放最后where后(注意:条件放最后和放关联表中查询有时是不一样的)

千万级别数据插入数据库中时一些mysql的设置

1.这些设置不确定一定有很大帮助,没有细致的调试过,自行辨别

– 最大数据量设置
show variables like ‘max_allowed_packet’ ;
SET GLOBAL max_allowed_packet=61210241024;

– 设置超时时间
set net_read_timeout=120;
set net_write_timeout=900;

show variables like “%tmp%”;
SET GLOBAL tmp_table_size =410241024*1024;
set global innodb_flush_log_at_trx_commit=0;

– 查询buffer类全局字段设置
show variables like “%_buffer%”;
SET GLOBAL innodb_buffer_pool_size=102410246000;
SET @@global.bulk_insert_buffer_size = 102410241000;

– 查询所有参数设置
show variables;

SET autocommit=0;
– 关闭唯一性检查
SET UNIQUE_CHECKS=0;
– 禁用外键检查语句为:
SET global FOREIGN_KEY_CHECKS=0;

– 禁止自动提交语句为:
SET AUTOCOMMIT=0;
set global innodb_flush_log_at_trx_commit=2; #禁止时时同步日志到磁盘
set global max_allowed_packet=1024*1024; # 配置max_allowed_packet为1G

set global innodb_io_capacity =2000 ;
set global innodb_io_capacity_max =20000 ;

set global innodb_autoextend_increment = 1024*100 ;
– mysql日志大小
set global innodb_log_file_size=128M;

mysql千万级数据查询select、插入insert慢 可能原因总结相关推荐

  1. 从千万级数据查询来聊一聊索引结构和数据库原理

    在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...

  2. 千万级别数据查询优化_从千万级数据查询来聊一聊索引结构和数据库原理

    在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...

  3. 数据库面试要点:关于MySQL数据库千万级数据查询和存储

    摘要:百万级.千万级数据处理,核心关键在于数据存储方案设计,存储方案设计的是否合理,直接影响到数据CRUD操作.总体设计可以考虑一下几个方面进行设计考虑: 数据存储结构设计:索引设计:数据主键设计:查 ...

  4. mysql千万级数据索引查询_mysql千万级数据量根据索引优化查询速度

    (一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经 ...

  5. mysql千万级数据量根据索引优化查询速度

    (一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经 ...

  6. MySQL千万级数据进行插入,基础数据3千万,插入1千万数据时间约为4.7分钟,10个线程同时插入

    测试MySQL千万条数据插入速度 使用多线程,每条线程处理数据100万条,每次插入携带数据7万条进行提交 数据库基数为0,插入1000万条数据,时间为311957毫秒,也就是311.957秒,约为5. ...

  7. MySQL千万级数据量优化方案

    前言 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区.除此之外,还有其他的思路和解决方案.根据本人多年的工作经验,做了如下总结. 方案 "千万级 ...

  8. MySQL百万级数据查询

    MySQL百万级数据排序分页查询 1. 需求 按照成绩降序排序,查询字段学号(id),姓名(name),分数(score),带排序的分页查询 数据大小:五百万条 2. 初始状态 浅分页: # 浅分页 ...

  9. MySql 千万级数据怎么查询?

    目录 1.前言 2.准备数据 2.1创建表 2.2创建数据脚本 3.开始测试 3.1查询总数 ​ 3.2.普通分页查询 3.3.相同偏移量,不同数据量 3.4相同数据量,不同偏移量 4.如何优化 数据 ...

最新文章

  1. coursera 《现代操作系统》 -- 第十一周 IO系统
  2. 在阿里云上创建一个个人网盘(owncloud)
  3. 在symfony2项目中100%提升doctrine的性能
  4. Scala的异常处理
  5. linux操作系统学习网站整理(100个)
  6. linux管道阻塞代码,linux中的管道
  7. Web框架 — Flask
  8. 智力测试题2——“五个人、五座房子”问题
  9. C/C++unlink函数的使用
  10. web前端炫酷特效-CSS3制作环形星星发光动画
  11. python中for else举例_Python 中for...esle和while...else语法
  12. 百度网盘百度云倍速播放破解
  13. 中班音乐计算机反思,幼儿园音乐活动反思10篇
  14. X-Pacific / Elasticsearch-ESClientRHL
  15. Pspice for TI取消默认打开方式
  16. java分发_【Java】用注解实现分发器
  17. nfc卡模式与标准模式_手机NFC卡模式功能是什么意思
  18. 锐捷笔试题java_2018秋招锐捷笔试试题
  19. .doc文档无法设置默认打开方式
  20. 在一个字符串中搜索某个特定的字符值

热门文章

  1. 机器学习——概率分类(三)高斯概率密度与混合高斯模型
  2. python基础——类型转换
  3. PSIM仿真+C语言(c block)实现PID控制和最小拍控制
  4. jQuery下(2nd)
  5. mssql sqlserver 添加表注释和添加列注释
  6. Oracle问题处理——MAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
  7. AI智能改写-文本改写人工智能
  8. 用计算机算法拼拼图,算法 – “拼图拼图”拼图
  9. 基于python的数字图像处理--学习笔记(三)
  10. Html5中文显示乱码