龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

记MySQL使用UDF自动同步memcached的效率 (1)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
MySQL可以使用 MySQL的mysql-udf-http 进行效率测试 ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql,测试版本是:libmemcached-0.34.tar.gz和memcached_functions_mysql-0.9.tar.gz,其它版

MySQL可以使用MySQL的mysql-udf-http进行效率测试 ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql,测试版本是:libmemcached-0.34.tar.gz和memcached_functions_mysql-0.9.tar.gz,其它版本配对都有问题,我安装测试过有问题的版本有:

  1. memcached_functions_mysql-1.1在:  
  2. libmemcached-0.49libmemcached-0.48libmemcached-0.47libmemcached-0.30libmemcached-0.43\libmemcached-0.42  
  3. 下安装有错误  
  4. memcached_functions_mysql-0.10在:  
  5. libmemcached-0.42下安装有错误  
  6. memcached_functions_mysql-0.8在:  
  7. libmemcached-0.49libmemcached-0.48libmemcached-0.47libmemcached-0.44libmemcached-0.43  
  8. libmemcached-0.42下安装有错误 

MySQL测试版本:5.1.55,操作系统Centos5.4 64bit,内存2G

安装libmemcached-0.34和memcached_functions_mysql-0.9:

  1. [root@sunss24 libmemcached-0.34]#./configure   
  2. --with-memcached=/home/memcache/bin/memcached  
  3. [root@sunss24 libmemcached-0. 34]# make  
  4. [root@sunss24 libmemcached-0. 34]# make install  
  5. 再运行一下memstat,算成功了  
  6. [root@sunss24 ~]# ln -s /usr/local/lib/libmemcached.so.3 /usr/lib/  
  7. [root@sunss24 ~]# cd memcached_functions_mysql-0.9  
  8. [root@sunss24 memcached_functions_mysql-0.9]# ./configure   
  9. --with-mysql=/usr/local/mysql/bin/mysql_config   
  10. --libdir=/usr/local/mysql/lib/  
  11. [root@sunss memcached_functions_mysql-0.9]# make && make install 

安装完成后将UDFs加载到MySQL中:

  1. mysql> show variables like "%plugin%";  
  2. +---------------+-----------------------------------+  
  3. | Variable_name | Value                             |  
  4. +---------------+-----------------------------------+  
  5. | plugin_dir    | /usr/local/mysql/lib/mysql/plugin |   
  6. +---------------+-----------------------------------+  
  7. 1 row in set (0.00 sec)  
  8. [root@sunss ~]# find / -name "libmemcached_functions_mysql.so" 
  9. /usr/local/mysql/lib/libmemcached_functions_mysql.so  
  10. /root/memcached_functions_mysql-0.9/src/.libs/libmemcached_functions_mysql.so  
  11. You have new mail in /var/spool/mail/root  
  12. [root@sunss ~]# cp /usr/local/mysql/lib/libmemcached_functions_mysql.so /usr/local/mysql/lib/mysql/plugin/  
  13. [root@sunss ~]# cd memcached_functions_mysql-0.9/  
  14. [root@sunss ~]#cd sql/  
  15. mysql> source install_functions.sql; 

查看各种版本:

  1. mysql> select memc_udf_version();  
  2. +--------------------+  
  3. | memc_udf_version() |  
  4. +--------------------+  
  5. | 0.9                |   
  6. +--------------------+  
  7. 1 row in set (0.00 sec)  
  8. mysql> select memc_libmemcached_version();  
  9. +-----------------------------+  
  10. | memc_libmemcached_version() |  
  11. +-----------------------------+  
  12. | 0.34                        |   
  13. +-----------------------------+  
  14. 1 row in set (0.00 sec)  
  15. mysql> 

遇到问题:

  1. No package 'libmemcached' found  
  2. Consider adjusting the PKG_CONFIG_PATH environment variable if you  
  3. installed software in a non-standard prefix.  
  4. Alternatively, you may set the environment variables DEPS_CFLAGS  
  5. and DEPS_LIBS to avoid the need to call pkg-config.  
  6. See the pkg-config man page for more details.  

解决办法:

  1. [root@sunss24 memcached_functions_mysql-0.9]# whereis pkgconfig  
  2. [root@sunss24 memcached_functions_mysql-0.9]# export   
  3. PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig  


精彩图集

赞助商链接