我希望在高流量站点上使用准备好的语句来加速一些查询。我认为我没有正确理解的是使用准备好的语句的好处,除非它们可以通过多个连接保持准备状态。看起来这对于也不允许持久连接的 PDO 是不可能的。但持久连接功能不允许 PDO。
假设为了参数,我每秒运行 5,000 次查询:SELECT * FROM some_table WHERE some_column LIKE 'some_value'
据我了解,如果我每次需要查询时都更改“some_value”,PDO 会阻止 mysql 重新编译和评估查询。我也明白“some_value”可以用二进制而不是 ASCII 传输以节省带宽,但如果我每次打开连接时都必须发送整个查询,它不会节省太多。
同样根据我的阅读,存储过程不是解决方案,因为它们也不会通过多个连接进行编译。
这个问题有什么解决办法吗?将准备好的语句存储在服务器上的某个地方并让它在内存中编译并准备好在收到变量后立即触发?
有没有办法通过将连接池与 PDO 相结合来实现这一点?(虽然我也听说连接池并不理想,因为它会在某些情况下导致阻塞)