手头上有个项目,数据库用的是mysql,目前累计数据达到了100W以上,虽说数据量不是很大,但是查询的速度是有点慢。。
在网上查了资料,对于Mysql与应用程序交互的方式大概如下:
MySQL是经典的C/S(Client/Server, 客户端/服务器)模型, 在遍历结果集之前, 底层的实现可能已经把所有的数据通过网络(假设使用TCP/IP)读到了Client的缓冲区, 也有另一种可能, 就是数据还在Server端的发送缓冲区里, 并没有传给Client.
而我所使用的执行SQL语句的函数:mysql_query(),PHP中还有另外一个函数mysql_unbuffered_query与之功能相似,二者区别在于:mysql_query()会把所有的结果集从Server端读到Client端的缓冲区中,mysql_unbuffered_query则不会。
因此在执行返回大量结果集的SQL语句时建议使用mysql_unbuffered_query函数。
参考:http://ourmysql.com/archives/917