我正在尝试使用该函数创建一个IV:
mcrypt_create_iv(32, MCRYPT_DEV_RANDOM)
Run Code Online (Sandbox Code Playgroud)
这会导致脚本超过60秒后超时.(也许更多?)但是当我使用时URANDOM,它几乎可以立即正常工作.从我读到的它应该需要大约4秒钟MCRYPT_DEV_RANDOM,但它肯定需要太长时间.错误日志中没有任何内容.
我在ubuntu 12.04服务器上安装了apache2和php5.
我在我的centos服务器上运行完全相同的代码没有问题.
我希望在高流量网站上使用预准备语句加速一些查询.我不认为我正确理解的是使用预准备语句的好处,除非他们可以通过多个连接保持准备.看起来这对PDO来说是不可能的,它也不允许持久连接.但持久连接功能不允许PDO.
为了论证,我说我每秒运行5000次查询:SELECT*FROM some_table WHERE some_column LIKE'some_value'
根据我的理解,如果我每次需要查询时更改"some_value",PDO将阻止mysql重新编译和评估查询.我也明白"some_value"可以用二进制而不是ASCII来传输以节省带宽,但如果我每次打开连接时都必须发送整个查询,它就不会节省太多.
从我所读到的,存储过程也不是解决方案,因为那些也不会通过多个连接保持编译.
有没有解决这个问题的方法?将准备好的语句存储在某个地方的服务器上,并将其保存在内存中,并在收到变量后立即准备好?
有没有办法通过将连接池与PDO相结合来实现这一目标?(虽然我也听说连接池并不理想,因为它会在某些条件下导致阻塞)