前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL一张表最多能存多少数据?

MySQL一张表最多能存多少数据?

作者头像
搜云库技术团队
发布2022-05-24 13:34:46
3.5K0
发布2022-05-24 13:34:46
举报

大家好,我是磊哥!

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数据库一张表中能存储的最大数据量和实际记录的条数无关,而与 MySQL 的配置以及机器的硬件有关。因为,MySQL 为了提高性能,会将表的索引装载到内存中。InnoDB buffer size 足够的情况下,其能完成全加载进内存,查询不会有问题。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个简单的 test
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档