查看原文
其他

【320期】面试官问:MySQL 单表最多能存多少条数据记录?

Java精选 2022-08-09

点击上方“Java精选”,选择“设为星标”

别问别人为什么,多问自己凭什么!

下方有惊喜,留言必回,有问必答!

每一天进步一点点,是成功的开始...

MySQL本身并没有对单表最大记录数进行限制,这个数值取决于你的操作系统对单个文件的限制本身。业界流传是500万行。超过500万行就要考虑分表分库了。

一个简单的 test

通过循环给表中插入数据,记录插入条数,并输出到控制台。
结果:
private static void insertDataDemo() {
  DButil dButil = new DButil();
  myCon = dButil.getConnection();
  try {
   int i = 0;
   while(1==1) {
    i++;
    String sql = "insert into users (user_name,user_password)"
      + " value ('"+i+"','password')";
    sta = myCon.createStatement();
    sta.execute(sql);
    System.out.println(i);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }finally {
   dButil.close();
  }
 }
经过一晚上的运行,早晨发现已经插入了两百多万条数据, 尽管还可以插入数据,但通过控制台台输出发现插入数据的速度相对来说慢了很多,隔2-3秒插入一条,这速度是不能忍受的。关于更多MySQL面试题,公众号Java精选,回复java面试,获取面试资料。
事实上,MySql数据库一张表中能存储的最大数据量和实际记录的条数无关,而与 MySQL 的配置以及机器的硬件有关。因为,MySQL 为了提高性能,会将表的索引装载到内存中。InnoDB buffer size 足够的情况下,其能完成全加载进内存,查询不会有问题。

但是,当单表数据库到达某个量级的上限时,导致内存无法存储其索引,使得之后的 SQL 查询会产生磁盘 IO,从而导致性能下降。当然,这个还有具体的表结构的设计有关,最终导致的问题都是内存限制。

作者:米麓

https://blog.csdn.net/weixin_40307206/article/details/105158912

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

------ THE END ------

精品资料,超赞福利!

☆ 主流Java进阶技术(学习资料分享)


3000+ 道各类技术面试题在线刷,最新、最全 Java 面试题!

期往精选  点击标题可跳转

【312期】天坑!常见的 update 语句很容易造成 Bug 问题

【313期】SpringBoot 无侵入式,实现 API 返回统一 JSON 格式

【314期】Spring Cloud OpenFeign 接口反序列化失效,该如何解决?

【315期】面试官问:在大数据量情况下,如何优化 ElasticSearch 查询?

【316期】面试官问:如何编写符合 REST 架构风格的 RESTful API?

【317期】@RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法

【318期】聊一聊架构中接口性能优化技巧,确实有点硬...

【319期】面试官问:JUC 常用 4 大并发工具类是哪几个?

 技术交流群!

最近有很多人问,有没有读者交流群!想知道如何加入?方式很简单,兴趣相投的朋友,只需要点击下方卡片,回复“加群”,即可无套路入交流群!

文章有帮助的话,在看,转发吧!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存