Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
simple2025
0D
V2EX  ›  Linux

有个小问题,你们都説 golang 并发高

  •  1
     
  •   simple2025 · Jun 14, 2017 · 6043 views
    This topic created in 3289 days ago, the information mentioned may be changed or developed.
    那么 golang+mysql 的并发会有多少呢
    mysql 的配置就选个一般点的吧,没有 SSD 的
    
    golang+mysql 会有 25 倍 python+mysql 的并发吗
    
    26 replies    2017-06-18 09:17:27 +08:00
    JohnSmith
        1
    JohnSmith  
       Jun 14, 2017   ❤️ 1
    不是这样衡量的,首先不应该带着 mysql 来评测语言性能,其次要看使用示例,最直接的办法是写个 benchmark
    maemual
        2
    maemual  
       Jun 14, 2017
    。。。。。瓶颈在 mysql
    pengdu
        3
    pengdu  
       Jun 14, 2017
    不会,因为你这个瓶颈在 mysql 这里。
    pengdu
        4
    pengdu  
       Jun 14, 2017
    golang 的并发高,你可以理解为你有一个 server,同时 10w 个长连接。golang 可以给每个连接一个 goroutine。你用 python/c/java 都做不到,需要些比较复杂的线程池或者用 epoll 之类的。
    keenkiller
        5
    keenkiller  
       Jun 14, 2017
    楼主好像没搞清一些基本的问题……
    jarlyyn
        6
    jarlyyn  
       Jun 14, 2017
    楼主只认识 mysql 么……

    比如后端挂一个 redis?
    simple2025
        7
    simple2025  
    OP
       Jun 14, 2017
    @jarlyyn 主要还是 mysql 啊,redis 在我现在的业务来説是很少説,因为 mysql 毕竟 有个 web gui,找数据比 redis 要好找点。。而且我现在并发也不高,最高一分钟 600 吧
    jarlyyn
        8
    jarlyyn  
       Jun 14, 2017
    @chenqh

    web gui …………

    前后端用什么技术,肯定是由业务来决定的。

    你确定你大部分的数据都需要走 mysql,而不是缓存么?

    是的话你应该把心思花在优化 Mysql 上……
    alexsunxl
        9
    alexsunxl  
       Jun 14, 2017
    @chenqh 那你瞎折腾啥,就用熟悉的技术栈啊
    simple2025
        10
    simple2025  
    OP
       Jun 14, 2017 via iPhone
    @jarlyyn 要走 mysql,所以我现在很烦 mysql 分库分表的事情
    incompatible
        11
    incompatible  
       Jun 14, 2017 via iPhone
    你这个场景瓶颈在 mysql 上。
    另外 golang 又不止是让你用来写 CRUD 的,你若有机会做个高性能的网络产品比如 API 网关,golang 自然要比 python 性能好的多。
    orvice
        12
    orvice  
       Jun 14, 2017
    是写并发方便😋
    gamexg
        13
    gamexg  
       Jun 14, 2017   ❤️ 2
    实际 golang 并不是并发高,而是只需要按照多线程阻塞模式写网络程序,编译器自动转换成为 协程+epoll。

    没实测,理论上 golang 的性能和 c 语言用 epoll 写的性能是一致的,可能由于自动垃圾回收性能还次于 c。

    但是重点是写起来简单啊,epoll 之类的用起来比较麻烦,但是 golang 只需要疯狂开协程就行,一个连接来了,直接开一个协程 阻塞 read,阻塞 write,高兴了一个连接开两个协程,一个负责 read 一个负责 write 也没问题。开几十万协程也没什么性能问题。
    zjsxwc
        14
    zjsxwc  
       Jun 14, 2017
    瓶颈在 io,不在 golang
    sampeng
        15
    sampeng  
       Jun 14, 2017
    你要带 mysql。。。。我想没有任何一门语言能够碾压吧。。。
    reus
        16
    reus  
       Jun 14, 2017
    用了 mysql,你用啥语言都差不多
    simple2025
        17
    simple2025  
    OP
       Jun 14, 2017 via iPhone
    @reus 所以我先要学门 noSQL ?那个好
    simple2025
        18
    simple2025  
    OP
       Jun 14, 2017 via iPhone
    @reus 除了 redis
    reus
        19
    reus  
       Jun 14, 2017   ❤️ 1
    @chenqh 学 PostgreSQL
    changwei
        20
    changwei  
       Jun 15, 2017 via Android   ❤️ 1
    就算是用 php,python 这种脚本语言开发网站,实际性能瓶颈也在 mysql,更别说 golang 了。
    ryd994
        21
    ryd994  
       Jun 15, 2017 via Android   ❤️ 1
    先别急着分库分表,缓存做好了么?
    weer0026
        22
    weer0026  
       Jun 15, 2017
    看业务场景,不可能所有数据都是热数据,所以还是看场景加缓存隔离 mysql,不用 redis 那就 memcache。
    RubyJack
        23
    RubyJack  
       Jun 15, 2017
    先做缓存,我们一秒 2k 个动态请求,mysql 单机搞定,而且流量很低
    simple2025
        24
    simple2025  
    OP
       Jun 15, 2017 via iPhone
    mengzhuo
        25
    mengzhuo  
       Jun 15, 2017
    别急着分库分表, 索引做好了么,引擎调优了么, 数据项精简了么?
    pantingwen
        26
    pantingwen  
       Jun 18, 2017
    估计跑出来的结果都差不多,mysql 才是瓶颈,不要 db 才能对比两者的并发
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5412 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 01:20 · PVG 09:20 · LAX 18:20 · JFK 21:20
    ♥ Do have faith in what you're doing.