学习《MySQL实战45讲》中,知道MySQL服务器是边读数据边发送,客户端一般接受数据后缓存在本地,但是在一些特殊场景中,客户端需要处理的数据量很大,无法缓存数据库返回的所有数据,这时候就可以使用--quick选项逐条处理
MySQL服务器发送数据的方式
MySQL 客户端发送请求后,接收服务端返回结果的方式有两种:
- 一种是本地缓存,也就是在本地开一片内存,先把结果存起来。如果你用 API 开发,对应的就是 mysql_store_result 方法。
- 另一种是不缓存,读一个处理一个。如果你用 API 开发,对应的就是 mysql_use_result 方法。MySQL 客户端默认采用第一种方式,而如果加上–quick 参数,就会使用第二种不缓存的方式。
MySQL 客户端默认采用第一种方式,而如果加上–quick 参数,就会使用第二种不缓存的方式。采用不缓存的方式时,如果本地处理得慢,就会导致服务端发送结果被阻塞,因此会让服务端变慢。
实验
在MySQL Client使用quick选项后,实际上如果数据量没有特别大的话,不容易看出来quick的效果。 唯一看到的效果就是数据排列中出现了大量的-
符号,这是因为客户端拿到一条数据后就直接显示,因为客户端不知道后面数据的宽度, 为了尽量对齐,所以就添加了很多的-
符号
- quick选项
mysql -u root -proot --database test --quick
![](https://img.haomeiwen.com/i7081994/e20e08ac763321a5.png)
![](https://img.haomeiwen.com/i7081994/f55dba89856fc186.png)
网友评论