【发布时间】:2014-03-11 15:24:55
【问题描述】:
背景:
我有一个使用 PHP 5.4.10 和 MySQL 5.5 在 Laravel 4 上运行的项目
由于对性能的要求很高,该项目的大部分业务逻辑都存储在 MySQL 存储过程中,并且出于调试和日志记录的目的,每个过程都存储自己的运行时 - 它开始执行的毫秒数。
由于 MySQL 5.5 不支持毫秒,我最终编译了我自己的 UDF,它允许我以毫秒为单位准确存储当前的 unix 时间戳。 (See MICROTIME on Github)。
如果为写入日志的过程设置了标志,则该运行时值可用于:
计算程序在写入日志时运行了多长时间。示例:
INSERT INTO Log(call_time,run_time,message) VALUES(@t, MICROTIME()-@t, @m)为每个过程实例分组日志条目(因为一个过程的多个实例同时运行)。例子:
SELECT * FROM Log ORDER BY call_time
基本上,Microtime 支持对于这个项目至关重要。
问题:
随着 Google 应用引擎的 PHP 版本在去年已经成熟很多,我正在考虑将项目转移到带有 Google Cloud SQL 的 GAE。
从我的阅读看来,Google Cloud SQL:
- 不允许使用 UDF
- 基于 MySQL 5.5
正确吗?我可以在 Google Cloud SQL 上使用任何潜在的解决方法来允许我使用微秒吗?
例如,MySQL 5.6 似乎提供微秒支持。有什么方法可以在 Google Cloud SQL 上使用 MySQL 5.6?
【问题讨论】:
标签: mysql google-cloud-sql mysql-5.5 microtime mysql-5.6