› 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 · May 23, 2022 · 6957 views
    This topic created in 1593 days ago, the information mentioned may be changed or developed.

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

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

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

    另外,数据库讲进程就偏了,win 的实现才是标准的 os 线程模型,而不是 linux 的多进程 /轻量级进程模型。这一点上 win 没劣势。
    i3x
        20
    i3x  
       May 23, 2022 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  
       May 23, 2022
    win 的异步到现在也没改善吧,因为文件描述符和套接字分开,事件必须由内核提供,而内核是闭源的,三方库很难搞。难以想象有什么理由使得 win 的服务性能高于 linux ,另外寻找稳定版本的 win 也是一个问题,不像 linux 跑就跑了,你可以二十年后再回来看它。
    ysc3839
        22
    ysc3839  
       May 24, 2022 via Android
    @cubecube 我知道 Windows 的线程开销比进程小,只是举一个可能影响性能的例子。
    另外前段时间有看到个新闻,说是某软件不正确地使用线程导致在 Windows 下性能变差,因为 Windows 下频繁创建销毁线程的开销也比较大,正确做法是使用线程池,Windows 有内置的线程池,用起来也不麻烦。
    neoblackcap
        23
    neoblackcap  
       May 24, 2022   ❤️ 1
    如果 MySQL 是你关注的点,那么请使用 Linux ,因为 Linux 是它开发的一等公民,MySQL 对 linux 的支持是最完备的。有什么问题,网上几乎也是以 Linux 作为默认操作系统。出于对日后维护的考虑,建议还是购买一台单独的 Linux 虚拟机跑 MySQL
    jedihy
        24
    jedihy  
       May 24, 2022
    用 MySql 当然用 linux ,别人是顺便支持 Windows 。
    documentzhangx66
        25
    documentzhangx66  
       May 24, 2022
    如果连接数据库的节点较多,需要注意一个问题:

    Mysql 社区版没有 thread pool ,没有用 IOCP 或 epoll ,只有 Mysql 企业版、Mariadb 、Percona 才有线程池。
    cubecube
        26
    cubecube  
       May 24, 2022   ❤️ 2
    @LeeReamond iocp 比 epoll 先进得多。。不要想当然
    litguy
        27
    litguy  
       May 24, 2022
    完成端口出来二十多年了,总有人想当然说 windows 不行
    不行也是成本问题 ,不是技术问题
    lookStupiToForce
        28
    lookStupiToForce  
       May 24, 2022
    还好看到能有人站出来反驳 win server 性能问题的一些言论,不然还真以为 V2EX 沦落到路边酒馆的水平了。
    另外搜索 win server 市占率,对没见过世面的会有惊喜 /吓——这还是在 win server 贵的出奇的许可证费用下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1200 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 16:50 · PVG 00:50 · LAX 09:50 · JFK 12:50
    ♥ Do have faith in what you're doing.