针对MySQL触发器的效率,我做了如下实验:
测试用例:
1,创建简单数据表数据表,使用存储过程插入10万条数据,记录存储过程执行时间。
2,使用存储过程插入数据可以确保顺序执行,模拟数据库辅库的真实执行情况。
3,对比三种情况:无触发器、简单触发器、调用memc函数的存储过程。
4,每种情况均使用空数据表,测试环境在最大程度上保持一致。
测试环境:
1,运行于VMWare下的CentOS 5.5 虚拟机,512M内存,Intel i3 350
CPU,VMWare只使用单核,笔记本5400转硬盘。
2,数据库版本:Percona-Server-5.1.50-rel11.4-111-Linux-i686
3,数据库 innodb_buffer_pool_size 设置为 64M 。
4,其他程序版本:libmemcached-0.37 、 memcached_functions_mysql-0.9
、memcached 1.4.5 5,
Memcached服务程序与MySQL数据库部署在同一机器。
测试脚本:
参见 triggerTest.sql
测试结果:
参见triggerTestResult.txt
测试数据如下:
1,无触发器耗时: 1.55秒
2,简单触发器耗时: 2.05秒