V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
l890908
V2EX  ›  MySQL

一个 mysql 库容纳多少个表会比较明显的影响速度?

  •  
  •   l890908 · 2020-09-06 16:30:12 +08:00 · 4887 次点击
    这是一个创建于 1320 天前的主题,其中的信息可能已经有所发展或是发生改变。
    理论上来说基本上没有限制(42 亿多),但是同时访问的表越多,文件描述符就越多,从操作系统角度来说还是有影响的;

    那么在实操过程中多少个表会比较明显的影响速度?
    20 条回复    2020-09-07 17:31:13 +08:00
    qiayue
        1
    qiayue  
       2020-09-06 16:32:24 +08:00
    可以不用考虑极限了,按照业务分库分表即可。
    举例我们的统计 SDK,每个接入的 app 都给一个单独的库,这样不同 app 互不影响。
    l890908
        2
    l890908  
    OP
       2020-09-06 16:52:16 +08:00
    @qiayue 那如果实际上一个库中用到几百几千个表那也没有影响吗?
    xupefei
        3
    xupefei  
       2020-09-06 17:00:24 +08:00 via iPhone
    在担心操作系统内核瓶颈之前,不如先考虑一下硬盘瓶颈。

    推荐系统学习一下数据库原理,学完就不会有这种无意义的担心了😂
    xupefei
        4
    xupefei  
       2020-09-06 17:04:25 +08:00 via iPhone
    解答一下你的具体问题:用 innodb 引擎,多少表都不是瓶颈。
    realpg
        5
    realpg  
       2020-09-06 17:59:47 +08:00
    @l890908 #2

    目前我的单服务器库有上万个结构一样的表
    无性能压力
    zhz1237ok
        6
    zhz1237ok  
       2020-09-06 18:21:03 +08:00   ❤️ 1
    https://dev.mysql.com/doc/refman/8.0/en/database-count-limit.html

    MySQL has no limit on the number of tables. The underlying file system may have a limit on the number of files that represent tables. Individual storage engines may impose engine-specific constraints. InnoDB permits up to 4 billion tables.

    mysql 没有极限,innodb 只能容纳四百万张表

    够用了
    CitizenR
        7
    CitizenR  
       2020-09-06 19:15:04 +08:00 via iPhone
    @zhz1237ok 那不是四百万,是四十亿,但肯定都够用。
    qa2080639
        8
    qa2080639  
       2020-09-06 19:53:40 +08:00 via Android
    @realpg 分那么多表是怎么同步更新表结构的呢?
    realpg
        9
    realpg  
       2020-09-06 19:54:38 +08:00
    @qa2080639 #8
    我的系统表结构不需要更新
    opengps
        10
    opengps  
       2020-09-06 20:14:53 +08:00 via Android
    表数量一般不是重点,重点往往是你数据库落盘的硬盘 io 是否够用
    yingfengi
        11
    yingfengi  
       2020-09-06 20:58:02 +08:00
    数据库这玩意,和虚拟化一样,往往你的硬盘 io 先撑不住了。。。
    a719114136
        12
    a719114136  
       2020-09-06 21:18:57 +08:00 via Android
    实际操作中不会遇到这种情况,当业务发展到需要这么多表的时候一定已经做了分库,不会只用一台机器一个库
    ackoly
        13
    ackoly  
       2020-09-07 09:07:47 +08:00 via iPhone
    是实例还是库?
    我们生产上有一个实例 40+w 张表,分布在几百个数据库,目前的问题是阿里云无法备份,咨询后确认超过 40W 导致的。
    PS.实例配置 4c8g
    KingPL
        14
    KingPL  
       2020-09-07 09:14:34 +08:00
    实际业务上 能达到那体量,也是不差钱重构的啦....
    l890908
        15
    l890908  
    OP
       2020-09-07 09:42:08 +08:00
    @ackoly 是啊,实际中与理论上不一样的,阿里云备份应该是直接备份对应的服务器实例?怎么会出现无法备份的情况》?
    weizhen199
        16
    weizhen199  
       2020-09-07 10:05:26 +08:00
    主要看的是你的机器
    YzSama
        17
    YzSama  
       2020-09-07 10:32:34 +08:00
    上个 SSD 、cpu 开个 24C 32G 内存。应该能顶住百万级吧
    w3cfed
        18
    w3cfed  
       2020-09-07 11:32:39 +08:00
    后端渣渣,借楼求助。怎么锻炼自己的数据库设计能力呢?目前只会搭建一个博客的数据库设计......
    Huelse
        19
    Huelse  
       2020-09-07 13:56:49 +08:00
    @l890908 #15 mysql 技术本身支持几乎无上限,或者说上限很大,大到你无需在初期考虑他。更多的还是在于硬件限制,从水桶效应来分析出系统的上限在哪里,一般都是硬盘 IO,内存和网络限制。
    xupefei
        20
    xupefei  
       2020-09-07 17:31:13 +08:00 via iPhone
    @w3cfed 先系统学习一下数据库原理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1300 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:40 · PVG 01:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.