我期待在高流量网站上使用预准备语句加速一些查询。我不认为自己正确理解的是使用准备好的语句的好处,除非他们可以通过多个连接保持准备。看起来这对PDO来说也是不可能的,这也不允许持久连接。但持久连接功能不允许PDO。mysql永久准备语句
可以说,为了讨论我运行一个查询5000次每秒: SELECT * FROM some_table WHERE some_column LIKE“SOME_VALUE”
从我个人理解,PDO将阻止MySQL的从重新编译和评估每次我需要查询时,查询是否要更改“some_value”。我也明白,“some_value”可以用二进制而不是ASCII来传输以节省带宽,但如果我每次打开连接时都必须发送整个查询,那么节省的不多。
也从我读过的,存储过程不是解决方案,因为那些不保留编译通过多个连接。
有没有解决这个问题的办法?将准备好的语句存储在服务器的某个地方,让它在内存中编译并准备在收到变量后立即触发?
有什么办法可以通过将连接池与PDO结合来实现吗? (虽然我也听到了连接池是不理想的,因为它可能会导致在一定的条件下阻止)
如果你想使用持久连接,则必须设置PDO :: ATTR_PERSISTENT的驱动程序选项传递给PDO构造数组中。如果在实例化对象后将此属性设置为PDO :: setAttribute(),则驱动程序将不会使用持久连接。 – 2012-07-23 02:39:58
为什么不使用Memcached? – 2012-07-23 02:41:28