本周三VA China进行了一次停机维护,主要的维护内容就是重新编译MySQL,以添加InnoDB存储引擎的支持。

phpVMS默认含有若干个使用InnoDB的数据表,主要是一些存储大量数据的表,由此对InnoDB是否对大量数据的表的处理更有优势产生了兴趣,于是百度之,得到以下经验:

1.InnoDB 中不保存表的具体行数,所以在执行SELECT的时候会扫描全表的内容,而MyISAM只需要从已保存的行数中直接读出即可,这也是InnoDB查询速度比较慢的主要原因;

2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除;

3.InnoDB支持事务处理,不过事务处理这个东西究竟是个什么东西目前我也不清楚。

在对部分表进行存储引擎修改后发现,InnoDB在VA China目前的数据量下,数据处理方面并没有多大的优势,反而由于系统的数据库查询比较多,影响了页面整体的执行效率,今日已将全部表改回MyISAM。

 

ps:此次维护后,运营系统执行效率降低了不少,恢复存储引擎后仍然未能回到之前的水平,目前还在继续查找原因。。。