SpringMVC 项目, MySQL 数据库,在这种配置的机器上,最多能承受多少条数据? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Trinity888
V2EX    程序员

SpringMVC 项目, MySQL 数据库,在这种配置的机器上,最多能承受多少条数据?

  •  
  •   Trinity888 2020-05-03 21:33:24 +08:00 4681 次点击
    这是一个创建于 1990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    计算机配置: Windows10 企业版 处理器: Intel(R) Core(TM) i5-7500 CPU @ 3.4GHz 3.41GHz 内存 : 16GB 系统类型: 64 位

    有的界面:当数据库表中,达 1 万 6 千多数据,界面就卡了。

    大家谁知道,除了优化程序代码、优化数据表查询效率外,这样的配置,能支撑多少条数据,有一范围就行

    39 条回复    2020-05-08 11:29:28 +08:00
    youxiachai
        1
    youxiachai  
       2020-05-03 21:37:40 +08:00   1
    1w 多数据就卡了。。。。你这程序得多烂啊。。
    看着明显内存泄漏了啊。。
    youxiachai
        2
    youxiachai  
       2020-05-03 21:40:35 +08:00
    不过话说回来。。。
    如果硬盘不是 ssd 的话。。卡的话,其实很正常。。。
    mosliu
        3
    mosliu  
       2020-05-03 21:43:37 +08:00   1
    一条数据 1k 大小 和一条数据 10M 大小完全不一样啊
    Trinity888
        4
    Trinity888  
    OP
       2020-05-03 21:55:56 +08:00
    @youxiachai 老兄,一般我们项目安装在阿里云服务器上,但现在这个 kh 是在一个计算机电脑上,我这程序优化、表查询索引等都优化了,如果他不听建议,硬要安装在这上面,数据量大概能支撑多少条呀?
    Trinity888
        5
    Trinity888  
    OP
       2020-05-03 21:56:55 +08:00
    @mosliu 普通的一条告警数据,仅文字。1 条数据很小
    mosliu
        6
    mosliu  
       2020-05-03 22:01:01 +08:00
    linux ? windows ?
    按 1k 一条计算 1.6w 条 mysql 放在内存里面也才 16M 算上多种索引 也就 30M?
    这个数据量。感觉真的太小了。。。
    建议直接把数据加进内存里面 从内存内部计算得了。。。怎么会这么慢。
    dingyaguang117
        7
    dingyaguang117  
       2020-05-03 22:11:01 +08:00
    什么叫界面就卡了?
    stefanaka
        8
    stefanaka  
       2020-05-03 22:39:45 +08:00 via Android
    界面卡确定是卡数据库吗?哪个语句?
    PIAPIAPIA
        9
    PIAPIAPIA  
       2020-05-03 22:47:39 +08:00 via Android
    接口响应 5 秒以上吗
    Trinity888
        10
    Trinity888  
    OP
       2020-05-03 22:48:01 +08:00
    @dingyaguang117 kh 说在他们内网访问时卡,关键我现在在本地访问速度可以。
    @nieqibest 告警列表功能,打开后有个按告警类型统计、告警级别统计,下面是告警列表数据( 2 表关联)
    Trinity888
        11
    Trinity888  
    OP
       2020-05-03 22:49:31 +08:00
    @PIAPIAPIA @nieqibest
    @dingyaguang117 我在造数据看看。就是不清楚这种配置到底多少条数据可以支撑呀,假如客户要求 100w 数据,这种配置可以吗?
    hangszhang
        12
    hangszhang  
       2020-05-03 22:55:57 +08:00
    不科学,直接查库呢?跳过 server,我感觉你都没定位问题
    PIAPIAPIA
        13
    PIAPIAPIA  
       2020-05-03 23:00:56 +08:00 via Android
    @Trinity888 我本地 i58g,只测过 10 来万的数据,接口返回差不多 5 秒,没测并发的情况
    yongjing
        14
    yongjing  
       2020-05-03 23:13:42 +08:00
    @PIAPIAPIA 贴 sql
    nockyQ
        15
    nockyQ  
       2020-05-03 23:42:52 +08:00
    “卡了”。这描述也太模糊了,建议先找到症结再来发帖询问。
    fixend
        16
    fixend  
       2020-05-04 00:26:25 +08:00 via Android
    这种机器,撑几千万条数据肯定没问题的,关键还是你程序怎么写的
    sprite82
        17
    sprite82  
       2020-05-04 03:29:27 +08:00 via Android
    是不是客户把服务器当个人电脑使用?我第一家公司,公司配的电脑是机械盘,本地数据库,ide 启动,页面 jsp,渲染挺慢的,但是数据库如果连到其他同事电脑上就快了很多。
    cian
        18
    cian  
       2020-05-04 07:08:46 +08:00
    设计合理 ,亿级别的数据都没问题
    shakoon
        19
    shakoon  
       2020-05-04 08:40:53 +08:00
    amd athlon 240,4g ddr2 内存,十几年前的机器,现在最大的表有两千万数据,几年重启一次。总结:你的代码太烂
    lg106
        20
    lg106  
       2020-05-04 08:54:12 +08:00
    数据库用的是阿里云的 rds 吗?如果不是地址换成 127.0.0.1 看看
    martinqian
        21
    martinqian  
       2020-05-04 09:03:45 +08:00
    就题主的数据类型和机器配置,100 万条那都不是事。你得先分析问题出在哪里,是网络原因(题主提到本地访问速度可以)?程序逻辑方面的原因(比如有并发就慢了很多)?数据库方面的原因(索引、关联)? API 进出打下日志看下时间耗费; MySQL 查看下日志,看一下耗时比较高的 SQL 执行花了多久,花在了哪些地方。把问题圈定在尽量小的范围内,这样才好想对策,V 友才能帮你。
    Varobjs
        22
    Varobjs  
       2020-05-04 09:08:26 +08:00 via Android
    8h16g,上亿数据也没卡啊
    zjqzxc
        23
    zjqzxc  
       2020-05-04 09:24:48 +08:00
    盲猜:楼主没命中索引导致频繁扫表了
    sadfQED2
        24
    sadfQED2  
       2020-05-04 09:58:51 +08:00 via Android
    一万多条数据,就算全表扫我觉得慢不到哪里去吧,可能根本不是数据库的问题,贴 sql ?慢日志?
    xizismile
        25
    xizismile  
       2020-05-04 10:36:12 +08:00 via Android
    自己先界定一下问题的范围,你这是让人大海捞针呀
    daozhihun
        26
    daozhihun  
       2020-05-04 11:04:30 +08:00
    什么叫做卡了?是单条 sql 执行过长还是别的地方占了 CPU ?
    你这提问不像是程序员
    rogwan
        27
    rogwan  
       2020-05-04 11:34:56 +08:00 via iPhone
    毫无疑问是程序写的有问题,这机器应付这点数据量毛毛雨
    GBdG6clg2Jy17ua5
        28
    GBdG6clg2Jy17ua5  
       2020-05-04 17:07:27 +08:00 via iPhone
    你说,你是不是偷偷在程序里写了几个 sleep,每次反馈卡就减少一个
    Trinity888
        29
    Trinity888  
    OP
       2020-05-04 21:51:27 +08:00
    @martinqian 您好 V 友,目前我们有个表:存的是告警数据(多个设备的告警数据,每个设备的告警用户是不同的)。
    1 )告警数据是由另一个终端插入进去的;
    2 )我这边是服务端: 需要查表才能知道,有新的告警数据了(且表中有原来已有的 3 种告警级别的 数据)再加上新插入的告警
    3 ) 我要遍历表,才能知道:现有总共有多少条告警,紧急级别的数量是多少,一般级别的数据是多少,普通级别的数量是多少。

    本人确实经验不足,也感觉 V 友们给提的建议
    请问像这种的有更好的设计,能否告诉一二,会认真学习地,谢谢
    Trinity888
        30
    Trinity888  
    OP
       2020-05-04 21:51:57 +08:00
    @mosliu 您好 V 友,目前我们有个表:存的是告警数据(多个设备的告警数据,每个设备的告警用户是不同的)。
    1 )告警数据是由另一个终端插入进去的;
    2 )我这边是服务端: 需要查表才能知道,有新的告警数据了(且表中有原来已有的 3 种告警级别的 数据)再加上新插入的告警
    3 ) 我要遍历表,才能知道:现有总共有多少条告警,紧急级别的数量是多少,一般级别的数据是多少,普通级别的数量是多少。

    本人确实经验不足,也感觉 V 友们给提的建议
    请问像这种的有更好的设计,能否告诉一二,会认真学习地,谢谢
    Trinity888
        31
    Trinity888  
    OP
       2020-05-04 21:52:29 +08:00
    @PIAPIAPIA 您好 V 友,目前我们有个表:存的是告警数据(多个设备的告警数据,每个设备的告警用户是不同的)。
    1 )告警数据是由另一个终端插入进去的;
    2 )我这边是服务端: 需要查表才能知道,有新的告警数据了(且表中有原来已有的 3 种告警级别的 数据)再加上新插入的告警
    3 ) 我要遍历表,才能知道:现有总共有多少条告警,紧急级别的数量是多少,一般级别的数据是多少,普通级别的数量是多少。

    本人确实经验不足,也感觉 V 友们给提的建议
    请问像这种的有更好的设计,能否告诉一二,会认真学习地,谢谢
    Trinity888
        32
    Trinity888  
    OP
       2020-05-04 21:55:04 +08:00
    V 友们,谢谢大家回复我,我的情况具体是这样的,希望能看到的朋友,帮我看下怎么设计合理些,本人确实经验不足,也感觉 V 友们可以回复给个建议。

    目前我们有个表:存的是告警数据(多个设备的告警数据,每个设备的告警用户是不同的)。
    1 )告警数据是由另一个终端插入进去的;
    2 )我这边是服务端: 需要查表才能知道,有新的告警数据了(且表中有原来已有的 3 种告警级别的 数据)再加上新插入的告警
    3 ) 我要遍历表,才能知道:现有总共有多少条告警,紧急级别的数量是多少,一般级别的数据是多少,普通级别的数量是多少。


    请问像这种的有更好的设计,能否告诉一二,会认真学习地,谢谢
    luckylo
        33
    luckylo  
       2020-05-04 22:39:27 +08:00 via Android
    对于你这个,不就是 group by 一下就好了么?很好奇你是怎么实现的? select * from xx,然后一把拿到内存,然后循环在内存搞?
    wqhui
        34
    wqhui  
       2020-05-05 10:56:04 +08:00
    1W 多数据正常来讲不会卡的啊,我试过查几百万数据的表,用索引查也是毫秒级的响应时间。1W 多数据就算没索引应该也用不了 1 秒,界面响应时间长就要看看每个步骤的耗时是多少了,可能是 SQL 有问题,也可能是程序有问题。看你这需求也不是很复杂的东西,根本花不了什么时间。
    hbolive
        35
    hbolive  
       2020-05-05 11:42:12 +08:00
    @Trinity888 以前搞过电信设备的告警监控显示,数据量比你这个大多了,因为当时不是码代码的,所以具体表结构没去分析过,但是大概的流程知道(系统为 C/S 结构)。
    有新的告警(暂且称客户端吧),直接将告警推送到某个地方(比如 MQ ),显示告警的服务端读取 MQ 数据显示并删除。客户端推数据的同时,将对应告警数据写入表。
    至于显示告警列表,不管是统计各类告警的数量 count(*) where level=,还是显示告警列表,就你这个配置,几百万数据都不是问题,常规操作就是。
    yinzhili
        36
    yinzhili  
       2020-05-05 17:15:25 +08:00
    我觉得,你这样的硬件配置,单表 100w 条数据都不至于卡。如果卡,说明程序写得有问题。
    mosliu
        37
    mosliu  
       2020-05-06 10:34:24 +08:00
    @Trinity888
    1. 建好索引
    2. 记录一个当前 id (考虑自增主键), 下次按 id 查询增加
    3. 告警条数,经常使用可以考虑单独存在另一张表里面。每次入库时更新,减少扫全表。
    mosliu
        38
    mosliu  
       2020-05-06 10:34:57 +08:00
    电脑配置,感觉撑到百万没问题。
    heavyrainn
        39
    heavyrainn  
       2020-05-08 11:29:28 +08:00
    遍历表?为啥要遍历表?你的告警级别应该是一个单独的字段吧?正常来说一个 sql 就出来的东西啊。举个例子,select count(*) as total_alert,sum(case when alert_level = '1' then 1 else 0 end) lvl1_alert,sum(case when alert_level = '2' then 1 else 0 end) lvl2_alert from your_table where timestamp >= ? 嘎巴一下就出来了啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3353 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:42 PVG 18:42 LAX 03:42 JFK 06:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86