V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dbfox
V2EX  ›  问与答

mysql 5.6 MyISAM 引擎和 InnoDB 数据读写问题

  •  
  •   dbfox · 2014-09-19 17:59:42 +08:00 · 2789 次点击
    这是一个创建于 3531 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我这里数据库

    总计有 256 个表,是把主键 key 进行md5 取前俩位,把数据分散到 这256 张表的,提升性能

    每个表有 20000 条数据左右,使用的是 MyISAM 引擎


    MyISAM 引擎在并发读写的时候 经常出现

    Duplicate entry xxxxxx for key PRIMARY 的问题

    在网上看了下,有人说 MyISAM 在读多写少的情况下性能非常好, 读写入频繁时就不给力了

    怎么优化呢?

    InnoDB 频繁读写 性能如何?相对于 MyISAM 性能有多大差距?

    如果我更改为 InnoDB 仍然是是把主键 key 进行md5 取前俩位 建立 256 张表,性能对比MyISAM 应该没多大差距吧?
    5 条回复    2014-09-20 06:06:57 +08:00
    bystand3r
        1
    bystand3r  
       2014-09-19 18:53:32 +08:00 via iPhone
    你这个根本不是性能问题啊……是主键重复了。读写性能的话,也要看索引,索引多或者复杂对写入影响就大
    GtDzx
        2
    GtDzx  
       2014-09-19 19:04:43 +08:00
    一共也才500万条数据,不像会有性能问题的样子,为什么不放在一个表里呢?
    skybr
        3
    skybr  
       2014-09-19 19:11:23 +08:00
    mysql的分区都出来那么多版了, 还人肉拆表呢
    dbfox
        4
    dbfox  
    OP
       2014-09-19 19:36:30 +08:00 via iPad
    @bystand3r 写前判断过的,并发下会出问题
    msg7086
        5
    msg7086  
       2014-09-20 06:06:57 +08:00
    @dbfox 逻辑问题啊。手动取last_id再+1再md5,当然会撞了。还不如分区功能好些。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1186 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:18 · PVG 02:18 · LAX 11:18 · JFK 14:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.