• 通达OA系统myisam转innodb引擎


    OA系统切换到linux环境后,性能提升了2-3倍左右,随着公司的发展壮大,办公人员也会越来越多,当人数达到一定数量级别时如1500在线人数已无法支撑公司业务,就需要对系统进行性能提升优化。

        当前OA系统采用myisam数据库引擎,该数据库引擎的特点是查询量是主要业务时响应速度很快,myisam是表锁不支持外键。innodb引擎是行锁,并发处理能力更强,针对大量用户同时新建工作流的业务场景,innodb数据库引擎更加合适。

        还有一点需要注意的是myisam可以直接通过拷贝整个数据库目录文件的方式迁移或者备份,innodb引擎备份更麻烦一些需要通过导出sql语句的方式备份。


    现阶段的mysql报告 96.22%都是查询业务,用myisam性能更佳


    具体实施步骤

    1.备份数据库(将整个TD_OA数据库备份)

    cd /opt/lampp/var/mysql

    mkdir TD_OABAK

    cp TD_OA/*.* TD_OABAK


    2.修改my.cnf文件

    innodb_data_file_path=ibdata1:256M:autoextend


    innodb_buffer_pool_size = 10G (内存的1/3大小)

    innodb_log_buffer_size  = 8M

    key_buffer_size         = 2G


    innodb_log_file_size      = 256M

    innodb_log_files_in_group = 8


    2.生成修改引擎为innodb的sql语句

    运行修改表的脚本拼凑ALTER TABLE wp_posts ENGINE=INNODB;

    <?php

    header('content-type:text/html;charset=utf-8');

    //将数据库由myisam转化为innodb引擎

    //连接数据库

    $conn=mysql_connect('localhost:3336','root','myoa888');

    if(!$conn) {

       print_r(mysql_error());

    }

    //选库

    $sql='use td_oa';

    mysql_query($sql) or die('select database error');

    //设置字符集

    $sql='set names utf8';

    mysql_query($sql);

    $sql = 'show tables';

    $res = mysql_query($sql);

    while($row = mysql_fetch_row($res)){

        

        $sql = "alter table `".$row[0]."` ENGINE=INNODB;";

        echo $sql,'<br />';


    }

    ?>


    3.重启数据库服务


  • 相关阅读:
    luogu P3128 [USACO15DEC]最大流Max Flow (树上差分)
    codeforces 600E . Lomsat gelral (线段树合并)
    bzoj 1483: [HNOI2009]梦幻布丁 (链表启发式合并)
    bzoj 1257: [CQOI2007]余数之和 (数学+分块)
    codevs 2606 约数和问题 (数学+分块)
    bzoj 2038: [2009国家集训队]小Z的袜子(hose) (莫队)
    bzoj 1086: [SCOI2005]王室联邦 (分块+dfs)
    bzoj 4542: [Hnoi2016]大数 (莫队)
    【NOIp模拟赛】Tourist Attractions
    【NOIp模拟赛】String Master
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239894.html
Copyright © 2020-2023  润新知