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
466934322
V2EX  ›  MySQL

求 mysql 数据库大神解答

  •  
  •   466934322 · 2016-08-08 15:47:44 +08:00 · 4179 次点击
    这是一个创建于 3011 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样的,因为我们公司的需求如下:每天都有新客户加入,每天都要增加 20-30 个,然后我做的是一个 execl 导入数据,而数据的每个用户的状态都不是一样的,最初只有 20 条导入数据库,半个月下来,每次导入数据库的数据都有 1000+,而且每天都在 20+的递增,怎么解决,我怕到时数据库都抗不住了。毕竟我也只是数据库的新手,期待 mysql 的大神给出方案
    44 条回复    2016-08-13 12:12:20 +08:00
    wshcdr
        1
    wshcdr  
       2016-08-08 15:58:06 +08:00
    也要看你数据库服务器的配置,不过一般来说, 一千万条的记录还是妥妥的
    lydhr
        2
    lydhr  
       2016-08-08 15:58:56 +08:00
    这点数据不算大
    adexbn
        3
    adexbn  
       2016-08-08 16:04:57 +08:00
    这数据量一点都不大
    466934322
        4
    466934322  
    OP
       2016-08-08 16:11:03 +08:00 via Android
    @wshcdr
    @lydhr
    @adexbn
    一年后,二年后,业务规模越来越大,我总不可能等着来的时候被骂死吧
    shiny
        5
    shiny  
       2016-08-08 16:11:26 +08:00
    1 、要是数据库都扛不住了,说明你们公司发大财了;
    2 、要是数据增长的压力超过了硬件升级速度,说明你们公司发大财了;
    3 、发了大财数据库还扛不住,你自然会有更牛逼的队友来替你分担,就不要操心了。
    466934322
        6
    466934322  
    OP
       2016-08-08 16:14:21 +08:00 via Android
    @shiny 主要是我也想学点相关方面的知识,以前一直外包,根本没有相关的东西啊
    markme
        7
    markme  
       2016-08-08 16:15:55 +08:00
    @466934322 一般配置, MySQL 数据上百万压力也不大。如果真的到了客户数量导致你数据库压力大的时候,公司多半发了,还会愁这种问题吗?(手动滑稽
    yjxjn
        8
    yjxjn  
       2016-08-08 16:16:09 +08:00
    @466934322 怎么能扛不住呢?我司用的 DB2 for z/OS,各个表数据加起来差不多总量达到 5000W 左右。到时候出问题再对应就 OK 了。。。话说,你加磁盘什么的。。。公司一般都是 on demand ,不会给你一个非常大的硬盘空置的。。。
    还有你既然说每天 20+,你算一算磁盘容量还能用剩余多少,什么时候磁盘才不够用了。。。
    shiny
        9
    shiny  
       2016-08-08 16:17:23 +08:00
    @466934322 如果说想要学 MySQL 相关知识,建议老老实实去啃几本书,高性能 MySQL 什么的。像你这个场景,半个月才 1000+,跑个上下五千年都没有问题吧。线上几千万的数据量也照样单表跑得欢。
    yjxjn
        10
    yjxjn  
       2016-08-08 16:18:24 +08:00
    话说问的问题都有毛病。。。什么叫数据库扛不住了?你数据不都在磁盘上存储么。。。啥叫扛不住了?意思是每天写进 20 条数据?并发处理有问题?你是质疑 MySQL 的性能啊。。。虽然我司不用 MYSQL 。。。。
    iyaozhen
        11
    iyaozhen  
       2016-08-08 16:18:29 +08:00 via Android
    楼主真是多虑了,我这边一天几万的数据都没担心(数据量更大的肯定已经分表了)。个人使用来看简单的数据 MySQL 1 亿条一下索引合适都不用担心性能问题。就算 1kw 条,每天新增 1w ,就是 1000 天,差不多 3 年,怕啥,你能不能在公司干 3 年都不知道。

    当然你有先考虑这些是好的,但有时候可以先看看脚下的事情,比如能不能把 Excel 导入数据自动化?
    walkman660
        12
    walkman660  
       2016-08-08 16:18:33 +08:00
    @466934322
    按每天 30 个算,一年增加 21 900 ,十年 219 000 ,离瓶颈很远很远
    好像你现在的瓶颈在于导入 MYSQL ,写个 WEB 插入查询数据吧,实在写不了就用 MYSQL 客户端, WEB 客户端就 PHPMYADMIN
    icemanpro
        13
    icemanpro  
       2016-08-08 16:19:19 +08:00
    你导入的是什么数据?新增用户?还是所有用户?
    dexterzzz
        14
    dexterzzz  
       2016-08-08 17:13:14 +08:00
    我用 access 这种文件数据库处理 3000w 行数据都是秒查询.
    liprais
        15
    liprais  
       2016-08-08 17:19:22 +08:00
    @yjxjn 5000 w 数据就用 system z...银行吧?
    yjxjn
        16
    yjxjn  
       2016-08-08 17:51:23 +08:00
    @liprais 不, IBM 自己的内部系统。 但是也和金融有关,主要是支付系统。
    caola
        17
    caola  
       2016-08-08 18:17:25 +08:00
    你目前一天就一两千条数据的写入,不用什么特别的优化的情况下,一般 mysql 都是可以应付。

    但要养成定时备份习惯。
    wy315700
        19
    wy315700  
       2016-08-08 19:09:00 +08:00
    MySQL 单表一天插入 5000 万条记录 没有任何问题
    SlipStupig
        20
    SlipStupig  
       2016-08-08 19:23:07 +08:00
    @466934322 如果两年后,你公司倒闭了你根本不用担心这个事情,如果还没倒闭你根本不用担心这个事情!
    why1
        21
    why1  
       2016-08-08 19:28:56 +08:00
    一两年后你还是小白?还不改进升级系统
    ooTwToo
        22
    ooTwToo  
       2016-08-08 20:02:02 +08:00 via iPhone
    白粉心
    ksupertu
        23
    ksupertu  
       2016-08-08 22:15:54 +08:00 via Android
    换 percona 版本 mysql ,请他们优化...单表上四千万在考虑优化吧,可以看网易 mysql dba 团队的文档,网易云课堂上有视频教程,更高端的就请 percona 吧,交给专业人去做,或者换架构来一套 hadoop elasticsearch hbase...
    julyclyde
        24
    julyclyde  
       2016-08-08 22:24:55 +08:00   ❤️ 1
    @shiny “说明发大财了”这种话没有任何意义啊。被更牛的同事替代了才是需要担心的问题
    466934322
        25
    466934322  
    OP
       2016-08-08 22:41:40 +08:00 via Android
    @julyclyde 这都不懂,他们的意思是不看好我呗
    fuyufjh
        26
    fuyufjh  
       2016-08-09 01:05:40 +08:00   ❤️ 1
    每天 20+条,你这是在侮辱 v 站群众的智商。。。
    webjin1
        27
    webjin1  
       2016-08-09 05:03:43 +08:00 via Android
    从删库到跑路
    466934322
        28
    466934322  
    OP
       2016-08-09 07:54:43 +08:00 via Android
    @fuyufjh 你们要这样认为我也没有办法,毕竟嘴和手,还有键盘都在你们手上。而我只是一个群众
    jeffw
        29
    jeffw  
       2016-08-09 08:02:34 +08:00 via iPhone
    只能说你想多了
    julor
        30
    julor  
       2016-08-09 08:09:26 +08:00 via Android   ❤️ 1
    我去,你们讲了这么多,提供了方案吗?我看大多还是不懂吧,你们就吹的起劲!

    @walkman660 楼上谁告诉你的增长是线性的?不听说过指数?

    不能学习更多的知识,迎接更多的挑战?

    支持楼主肯思考,愿意学习!那些说没必要的祝他们 10 年后水平还和现在一样!!!
    kiwi95
        31
    kiwi95  
       2016-08-09 08:56:14 +08:00   ❤️ 1
    @julor 所以你提供方案了吗,只是说支持楼主有什么用?

    如果真的每天只有几十条数据半个月几千条数据,楼主也没说会指数增长,这个时候过分担心数据量的问题只能说对数据库没有一个整体的感性的认识,学习更多的只是不是嘴上说的,楼上很多人都给出了自己维护 MySQL 的经验,对楼主肯定也很有帮助
    scnace
        32
    scnace  
       2016-08-09 09:02:01 +08:00
    少年 你需要一本动物书。。
    Abirdcfly
        33
    Abirdcfly  
       2016-08-09 09:17:07 +08:00 via iPhone
    这个数据量不用担心吧。我每天几百万的入,没什么区别。无需担心。
    kxjhlele
        34
    kxjhlele  
       2016-08-09 09:28:39 +08:00   ❤️ 1
    我每天最少 1.5 亿行的入库量,还用 mysql 呢,都感觉性能 ok ;分表,每天汇聚,每月汇聚
    walkman660
        35
    walkman660  
       2016-08-09 10:54:08 +08:00
    @julor
    你的方案是? LZ 说的需求“每天都要增加 20-30 个”是指数?
    nandaye
        36
    nandaye  
       2016-08-09 11:42:26 +08:00
    "我怕到时数据库都抗不住了"看成了 “我怕到时候我扛不住”
    466934322
        37
    466934322  
    OP
       2016-08-09 12:02:55 +08:00 via Android
    @nandaye
    @walkman660
    @kxjhlele
    @Abirdcfly
    @scnace
    @kiwi95
    @julor
    @jeffw
    @webjin1
    刚刚看到各位回复,我纯粹是来听听各位老前辈的看法,毕竟听君一席话,胜读十年书。也借此平台,起个抛砖引玉的作用,希望各位可以平和的交流自己的看法,新的创意,新的想法都是在交流中诞生的!当然,我是一个听你们传授经验的人!
    fuyufjh
        38
    fuyufjh  
       2016-08-09 13:46:46 +08:00
    @466934322 你没有 get 到我的意思。这种一看就是没入门的人问出的问题,我这个 CS 本科生都不想回答你,还指望前辈指点?为啥就不能看书呢?
    kiwi95
        39
    kiwi95  
       2016-08-09 15:05:20 +08:00   ❤️ 1
    @466934322

    摘抄一段 MySQL 扩展的建议:


    分片?还是不分片?这是一个问题,答案很简单,如非必要,尽量不分片。首先看能否通过性能调优或者更好的额应用或数据库设计来推迟分片,如果能足够长时间的推迟分片,也许可以直接购买更大的服务器,升级 MySQL 到性能更优的版本,然后继续使用单台服务器,也可以增加或减少复制。
    ...... 如果不分片,二是尽可能地优化应用,系统能扩展到什么程度呢?答案可能会让你很惊讶,有些非常受欢迎的应用,你可能以为从一开始就分片了,但实际上直到已经数十亿美元并且流量极其巨大也还没有采用分片的设计。分片不是城里唯一的游戏,在没有必要的情况下采用分片的架构来构建应用会步履维艰


    -- 《高性能 MySQL 第三版》 P514 。所以你现在更本不要什么方案,当你真的需要扩展方案了,这本书也可以满足你
    walkman660
        40
    walkman660  
       2016-08-09 17:01:15 +08:00   ❤️ 1
    软件能优化就软件优化,实在不行上硬件,多节点 MYSQL 集群+负载均衡+光纤存储
    likuku
        41
    likuku  
       2016-08-09 17:12:57 +08:00   ❤️ 1
    分库分表分机器啊... 一年一个库,每个月一张表
    julyclyde
        42
    julyclyde  
       2016-08-09 20:23:10 +08:00
    到了再说
    oniceriver
        43
    oniceriver  
       2016-08-10 09:58:09 +08:00   ❤️ 1
    题主说的是用户表,国内目前用户过亿的公司也不是很多吧,如果真过亿了,就不可能没有专业的团队来解决数据问题.毕竟用户都过亿了,那业务数据的数据量要多好几个数量级了.所以瓶颈肯定不会最先出在用户表上.
    然后看到题主说每天用 excel 导入数据.excel 导入的效率实在是太低,太耗内存,如果不幸题主还是一条一条循环往数据库插的话,那性能是肯定不行了.
    可以考虑用 csv 进行数据导入.之前的项目,每天更新商品数据接近千万,都是用 csv 导入.完全无压力.
    466934322
        44
    466934322  
    OP
       2016-08-13 12:12:20 +08:00 via Android
    @oniceriver 多谢提醒, cvs 我没有考虑,等下我去研究,我打算使用事务提交,看百度上说这样速度会快上不少
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1063 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.