zoukankan      html  css  js  c++  java
  • 通达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.重启数据库服务


  • 相关阅读:
    【纯水题】POJ 1852 Ants
    【树形DP】BZOJ 1131 Sta
    【不知道怎么分类】HDU
    【树形DP】CF 1293E Xenon's Attack on the Gangs
    【贪心算法】CF Emergency Evacuation
    【思维】UVA 11300 Spreading the Wealth
    【树形DP】NOI2003 逃学的小孩
    【树形DP】BZOJ 3829 Farmcraft
    【树形DP】JSOI BZOJ4472 salesman
    【迷宫问题】CodeForces 1292A A NEKO's Maze Game
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239894.html
Copyright © 2011-2022 走看看