V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
aidevs
V2EX  ›  问与答

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

  •  
  •   aidevs · Sep 19, 2014 · 3292 views
    This topic created in 4240 days ago, the information mentioned may be changed or developed.
    我这里数据库

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

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


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

    Duplicate entry xxxxxx for key PRIMARY 的问题

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

    怎么优化呢?

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

    如果我更改为 InnoDB 仍然是是把主键 key 进行md5 取前俩位 建立 256 张表,性能对比MyISAM 应该没多大差距吧?
    5 replies    2014-09-20 06:06:57 +08:00
    bystand3r
        1
    bystand3r  
       Sep 19, 2014 via iPhone
    你这个根本不是性能问题啊……是主键重复了。读写性能的话,也要看索引,索引多或者复杂对写入影响就大
    GtDzx
        2
    GtDzx  
       Sep 19, 2014
    一共也才500万条数据,不像会有性能问题的样子,为什么不放在一个表里呢?
    skybr
        3
    skybr  
       Sep 19, 2014
    mysql的分区都出来那么多版了, 还人肉拆表呢
    aidevs
        4
    aidevs  
    OP
       Sep 19, 2014 via iPad
    @bystand3r 写前判断过的,并发下会出问题
    msg7086
        5
    msg7086  
       Sep 20, 2014
    @dbfox 逻辑问题啊。手动取last_id再+1再md5,当然会撞了。还不如分区功能好些。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5475 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 03:15 · PVG 11:15 · LAX 20:15 · JFK 23:15
    ♥ Do have faith in what you're doing.