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

MySQL 5.6 中 MyISAM 还有使用价值吗?

  •  
  •   Feiox ·
    feiox · 2014-02-10 16:50:43 +08:00 · 19495 次点击
    这是一个创建于 3924 天前的主题,其中的信息可能已经有所发展或是发生改变。
    感觉 InnoDB 无论在功能还是性能都不输 MyISAM。原来的那些“静态表”“动态表”现在也没有了性能优势。5.6版本的 InnoDB 在写入操作上性能提升明显,那么,MyISAM 还剩下什么优势呢?
    21 条回复    2017-03-19 15:42:47 +08:00
    kingwkb
        1
    kingwkb  
       2014-02-10 16:52:48 +08:00
    512M 内存的机器上面禁用innodb,能省出不少内存
    txlty
        2
    txlty  
       2014-02-10 16:59:17 +08:00
    有人习惯用拷贝数据文件的方式做备份、恢复
    Mac
        3
    Mac  
       2014-02-10 17:36:56 +08:00
    授权机制?
    gaicitadie
        4
    gaicitadie  
       2014-02-10 17:52:43 +08:00
    select count(*)
    a2z
        5
    a2z  
       2014-02-10 18:00:08 +08:00   ❤️ 2
    我用MySQL存放的数据有50亿条。
    innodb引擎的确不错,用来做transaction什么的很合适,log机制保证ACID等等,性能也不差。
    但是到了千万级数据以上就会遇到瓶颈了,千万级数据导入速度比myism慢个10倍,update也比myisam慢。在不需要transaction的情况下用innodb有点浪费。
    myisam在亿级才会遇到瓶颈,目前我处理过的myisam表最大单表7亿多数据,给int栏加索引用了6小时。

    另外就是需要count(*)的时候,innodb不是多就是少……
    a2z
        6
    a2z  
       2014-02-10 18:00:37 +08:00
    @txlty innodb也可以把表文件单独弄出来的。
    jiangjun
        7
    jiangjun  
       2014-02-10 19:29:34 +08:00
    我记得 MyISAM 的应用场景之一就是“多读,少写”的场景。InnoDB 在“写”的性能上本来就是优势,优势上再提升也不影响与 MyISAM 的比较吧。
    Feiox
        8
    Feiox  
    OP
       2014-02-10 19:44:44 +08:00
    @jiangjun 但是 5.6 中 InnoDB 的查询性能提升明显。。似乎和 MyISAM 差距不大(貌似没差距)了。。。5.6中好多老观念都变了,比如 char 和 varchar 类型的字段的性能没区别。。。
    Feiox
        9
    Feiox  
    OP
       2014-02-10 19:47:00 +08:00
    @kingwkb 能具体说一下 这两种引擎对内存的消耗情况么?
    est
        10
    est  
       2014-02-10 21:03:47 +08:00
    InnoDB写入比MyISAM慢这个谣言是哪里来的?似乎在php党里见得多。

    btw 5.7里面InnoDB也可以 match 了。
    GTim
        11
    GTim  
       2014-02-10 21:12:14 +08:00
    @a2z 导数据的时候要关闭一致性检查..不然百万都会卡久
    fatpa
        12
    fatpa  
       2014-02-11 01:01:12 +08:00
    @txlty innodb 也是可以拷文件做冷备的,记得拷多个 ibdata(记得是这名字)的索引文件就好了
    VYSE
        13
    VYSE  
       2014-02-11 02:27:51 +08:00 via Android
    存过20亿条三元row,无论pg还是innodb还是myisam索引都要几百G,大表走io哪家都慢。
    小表测过ndb和myisam和innodb,myisam原子级(如bulk insert)读写的确效率更高,一般场景感觉不出来差异,但有些耗尽一切资源的计算上差异确实存在
    andybest
        14
    andybest  
       2014-02-11 02:49:13 +08:00
    感觉 MySQL5.6 很美好的样子,如何从 MySQL5.5 InnoDB 平滑迁移至 5.6 InnoDB ?
    davidyin
        15
    davidyin  
       2014-02-11 03:43:29 +08:00
    插嘴问一下,在没有transaction的情况下,innodb同myisam的效率比较是否会差些?或者从哪个版本的mysql之后,innodb就比myisam更快了?
    est
        16
    est  
       2014-02-11 09:16:30 +08:00
    @davidyin 没有transaction为毛不用mongodb。
    Feiox
        17
    Feiox  
    OP
       2014-02-11 09:51:18 +08:00
    @est 有些业务需要事务,有些业务需要速度。。。呃,单机上跑两个数据库太耗资源了吧。至于多机,感觉 Redis + MySQL + MongoDB 是最佳组合。不过还是想知道。。MyISAM 和 InnoDB 到底啥差距?
    likuku
        18
    likuku  
       2014-02-11 10:01:58 +08:00
    同一台机器,一百多万条而已,只是简单查询+count,用几个where条件,postgresql 只用 innodb 1/10 时长。
    davidyin
        19
    davidyin  
       2014-02-11 13:43:48 +08:00
    @est 不是想用就用的,程序不支持,就支持mysql而已。
    ivmm
        20
    ivmm  
       2014-02-12 18:22:13 +08:00
    Mariadb 飘过
    bigyhm
        21
    bigyhm  
       2017-03-19 15:42:47 +08:00
    @a2z 一般一张表中,我们不会存储那么多的数据。达到千万以上的数据,肯定分到其他表里面了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   973 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.