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

Mysql 在 win 和 Linux 下的性能有差异吗?

  •  
  •   Features · 2022-05-23 13:20:03 +08:00 · 4981 次点击
    这是一个创建于 675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mysql5.7 或者 mysql8 在 windows server 2019 和 ubuntu server 21 这两个操作系统上面,有明显的性能差异吗?

    第 1 条附言  ·  2022-05-23 20:43:40 +08:00
    其实我是想节省点成本,因为有些服务需要 win 下运行,但是我担心 MySQL 在 win 下性能达不到 linux 的性能指标
    在想是否需要单独买一个作为 msyql 服务器?
    28 条回复    2022-05-24 14:43:03 +08:00
    zhangthe9
        1
    zhangthe9  
       2022-05-23 16:33:10 +08:00
    小数据量,区别不太大
    大厂不会选择 win
    ysc3839
        2
    ysc3839  
       2022-05-23 17:34:54 +08:00
    一般是认为 Windows 的性能更差的,因为 Windows 内核更复杂,比如有很细致的权限管理,那检查权限就会耗更多时间,进程启动时 Win32 子系统要处理窗口相关的东西,也会耗时。
    xiangyuecn
        3
    xiangyuecn  
       2022-05-23 17:52:37 +08:00   ❤️ 3
    纠结系统差异,换来 1ms 的性能提升😂

    换数据库,100ms 变 10ms🐶
    RangerWolf
        4
    RangerWolf  
       2022-05-23 18:14:20 +08:00
    大厂选 Windows 的话,我估计数据库更可能选择 SQL Server ? 比如 StackOverflow 的架构据说就是这样
    KidsMk
        5
    KidsMk  
       2022-05-23 20:31:20 +08:00 via Android
    我觉得,win 和 Linux 能差多少?不直接换数据库?
    haah
        6
    haah  
       2022-05-23 20:40:18 +08:00
    你所谓“性能”的指标是什么?你能先给个范围么?
    Features
        7
    Features  
    OP
       2022-05-23 20:42:14 +08:00
    @haah 就是常规性能对比
    比如 同时间吞吐率对比
    比如同等数据,同等配置下 SELECT 性能对比
    haah
        8
    haah  
       2022-05-23 20:44:50 +08:00
    @Features 给 mysql 官方发邮件或去 stackoverflow 上提问比这里有效果!
    Buges
        9
    Buges  
       2022-05-23 20:47:20 +08:00 via Android
    当然有差异,如果本来就是小鸡,Windows 系统吃一半资源,性能立马拉跨。
    其他的还有一些诸如 direct IO ,文件系统相关的优化,这些一般 Windows 都是二等公民。
    haah
        10
    haah  
       2022-05-23 20:47:49 +08:00
    你觉得哪“个人”会闲的没事去对比 windows server 2019 和 ubuntu server 21 上的 MYSQL 服务性能呢?
    我倒是觉是商业版数据库厂商有这个闲心。
    pavelpiero
        11
    pavelpiero  
       2022-05-23 20:53:09 +08:00 via Android
    涉及到 io 模型可能会有差异,比如 redis
    Features
        12
    Features  
    OP
       2022-05-23 20:54:20 +08:00
    @KidsMk 比如 Nginx ,在 win 下性能损耗挺大,最主要是很不稳定
    Features
        13
    Features  
    OP
       2022-05-23 20:55:30 +08:00
    @Features 网上基本没有对比数据,我又没有同配置的服务器可以测试,挺头疼的。。。
    roundgis
        14
    roundgis  
       2022-05-23 20:56:32 +08:00 via Android
    @Features nginx windows 只是開發用的吧?
    hefish
        15
    hefish  
       2022-05-23 21:08:48 +08:00
    说的好像已经是单表亿级数据库一样。。。
    codefun666
        16
    codefun666  
       2022-05-23 21:09:06 +08:00
    Windows 用来做服务器?
    Features
        17
    Features  
    OP
       2022-05-23 21:30:56 +08:00
    @hefish 就怕想 windows 的 Nginx 那么拉胯
    Features
        18
    Features  
    OP
       2022-05-23 21:31:11 +08:00
    @codefun666 为啥不能?
    cubecube
        19
    cubecube  
       2022-05-23 22:45:26 +08:00   ❤️ 2
    @ysc3839 然而实际上是之前 oracle11g 那个时代,oracle 两个平台下的性能对比测试下,win 每次都能赢
    具体 mysql 现在的性能的对比没太关注了。

    另外,数据库讲进程就偏了,win 的实现才是标准的 os 线程模型,而不是 linux 的多进程 /轻量级进程模型。这一点上 win 没劣势。
    i3x
        20
    i3x  
       2022-05-23 22:53:57 +08:00 via Android
    @xiangyuecn 还是看应用。win 下 php5 性能可能只有 linux 的几十分之一。。。比如说 mcpe 当年的 pocketmine 服务端。就是 php 写的。真是人才。同样配置的服务器 win 下 3 人卡,linux 下带宽还得加到 5M 能带 60 个人。

    如果是跑 asp mssql ,怎么说都是 win 可靠,虽然 linux 原生 asp 解释器,甚至 mono 跑 asp.net 。。但是 mono 启动起来别的不说多吃好多内存吧。
    LeeReamond
        21
    LeeReamond  
       2022-05-23 23:56:30 +08:00
    win 的异步到现在也没改善吧,因为文件描述符和套接字分开,事件必须由内核提供,而内核是闭源的,三方库很难搞。难以想象有什么理由使得 win 的服务性能高于 linux ,另外寻找稳定版本的 win 也是一个问题,不像 linux 跑就跑了,你可以二十年后再回来看它。
    ysc3839
        22
    ysc3839  
       2022-05-24 00:41:21 +08:00 via Android
    @cubecube 我知道 Windows 的线程开销比进程小,只是举一个可能影响性能的例子。
    另外前段时间有看到个新闻,说是某软件不正确地使用线程导致在 Windows 下性能变差,因为 Windows 下频繁创建销毁线程的开销也比较大,正确做法是使用线程池,Windows 有内置的线程池,用起来也不麻烦。
    neoblackcap
        23
    neoblackcap  
       2022-05-24 03:02:34 +08:00   ❤️ 1
    如果 MySQL 是你关注的点,那么请使用 Linux ,因为 Linux 是它开发的一等公民,MySQL 对 linux 的支持是最完备的。有什么问题,网上几乎也是以 Linux 作为默认操作系统。出于对日后维护的考虑,建议还是购买一台单独的 Linux 虚拟机跑 MySQL
    jedihy
        24
    jedihy  
       2022-05-24 03:10:20 +08:00
    用 MySql 当然用 linux ,别人是顺便支持 Windows 。
    documentzhangx66
        25
    documentzhangx66  
       2022-05-24 08:55:03 +08:00
    如果连接数据库的节点较多,需要注意一个问题:

    Mysql 社区版没有 thread pool ,没有用 IOCP 或 epoll ,只有 Mysql 企业版、Mariadb 、Percona 才有线程池。
    cubecube
        26
    cubecube  
       2022-05-24 09:09:43 +08:00   ❤️ 2
    @LeeReamond iocp 比 epoll 先进得多。。不要想当然
    litguy
        27
    litguy  
       2022-05-24 13:28:23 +08:00
    完成端口出来二十多年了,总有人想当然说 windows 不行
    不行也是成本问题 ,不是技术问题
    lookStupiToForce
        28
    lookStupiToForce  
       2022-05-24 14:43:03 +08:00
    还好看到能有人站出来反驳 win server 性能问题的一些言论,不然还真以为 V2EX 沦落到路边酒馆的水平了。
    另外搜索 win server 市占率,对没见过世面的会有惊喜 /吓——这还是在 win server 贵的出奇的许可证费用下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4453 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:05 · PVG 09:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.