首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL mysql-udf-http 效能測試:觸發器 + HTTP/REST 同步 Memcached 方案分析

     編輯:MySQL 資料庫相關知識

測試環境

  • VM:Linux 2.6.18,376MB 內存
  • MySQL 5.1.26-rc
  • 測試表:mytable(id, addtime, title) MyISAM utf8

基準性能

  • PHP 直連 MySQL 插入 1000 條:~0.9 秒
  • PHP 直連 Memcached 寫入 1000 條:~0.8 秒

方案:MySQL 觸發器調用 UDF http_put → PHP 接收 → 寫 Memcached

CREATE TRIGGER mytable_insert AFTER INSERT ON mytable
FOR EACH ROW
BEGIN
  SET @tt_resu = (SELECT http_put(CONCAT('https://192.168.0.134/mem_ss.php?type=post&id=', NEW.id, '&data=', NEW.addtime), 11));
END;

測試結果

  • PHP 批量插入 1000 條 + 觸發器同步:~9 秒
  • 懷疑 HTTP 連接開銷大,改為持久連接測試:仍 ~0.9 秒(單獨 PHP 寫 Memcached)
  • 對照:觸發器改為寫本地臨時表 INSERT INTO tmp_mytable ...:~0.7 秒

證明瓶頸在 http_put(mysql-udf-http)本身,而非觸發器或網絡。

結論與建議

mysql-udf-http 方案延遲極高,不適合高頻同步。建議改用 libmemcached UDF 或異步隊列(如 Kafka、Canal)解耦同步。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved