zoukankan      html  css  js  c++  java
  • shopex ecstone ,sdb_base_kvstore性能问题

    看一些基本信息。

    Table: sdb_base_kvstore
    Create Table: CREATE TABLE `sdb_base_kvstore` (
    `id` mediumint(8) unsigned NOT NULL auto_increment,
    `prefix` varchar(255) NOT NULL,
    `key` varchar(255) NOT NULL,
    `value` longtext,
    `dateline` int(10) unsigned default NULL,
    `ttl` int(10) unsigned default '0',
    PRIMARY KEY (`id`),
    KEY `ind_prefix` (`prefix`),
    KEY `ind_key` (`key`)
    ) ENGINE=MyISAM AUTO_INCREMENT=9417702 DEFAULT CHARSET=utf
    8

    id: 1
    prefix: system
    key: service_last_modified.base_application_dbtable.b
    ase
    value: s:32:"f765565d5b6a3bf8d1ccb18bd6058ab9";
    dateline: 1328604155
    ttl: 0

    SELECT `prefix`, `key` FROM sdb_base_kvstore WHER
    E ttl>0 AND (dateline+ttl)<1361339749 LIMIT 617900, 100

    类似的,有很多条thread ,

    问题主要是对sdb_base_kvstore 的查询很多,很多个thread,造成read lock。

    分析,这个没有走索引,所以会比较慢一点,而且有很多并发,myisam的表级锁争用造成性能问题,但是会造成read lock ,这个不懂为什么,照理说select表锁不会阻塞其他的读操作。

    解决方案是在ttl上建立索引,并且把表转成innodb的。主要是后者,innodb的行锁,大大提升并发性能。

    问题可解决。

  • 相关阅读:
    call 与 apply
    react-router
    阻止IOS上的弹性滚动
    React规范
    sessionStorage 、localStorage 和 cookie 对比区分
    显式Intent 和隐式 Intent 的区别
    Activity之间传递数据的方式及常见问题总结
    Android横竖屏切换生命周期变化
    String、StringBuilder、StringBuffer 区别
    内存泄漏
  • 原文地址:https://www.cnblogs.com/gqdw/p/2919270.html
Copyright © 2011-2022 走看看