zoukankan      html  css  js  c++  java
  • mysql_use_result与mysql_store_result异同点

    mysql_use_resultmysql_store_result异同点:

      通过mysql_use_result取回结果集时,并没有像mysql_store_result那样实际把结果集读到client. 每行必须通过调用mysql_fetch_row()来取回.server上并没有把结果存储在临时表或者本地的缓冲区中,而是直接从server上读取查询的结果.所以它比mysql_store_result稍微快些,内存使用也相对少些. 这样client分配的内存只需要能满足current row 加上最大可以达到
    max_allowed_packet字节大小的communication buffer就足够.

      假如你需要在client端对每行结果做很多的处理,或者输出到用户可以按^s来停止滚屏的屏幕上,那么就不适合用mysql_use_result.因为这样将挂起server和阻止其他thread更新对应数据的表.

      当通过使用mysql_use_result来取回结果时,你必须执行mysql_fetch_row()直到返回NULL,否则未被取回的数据将被包含在下一次查询结果中. 假如你忘记了, c api将给出错误"Commands out of sync; you can't run this command now"!

      通过mysql_use_result来取回所有结果(即mysql_fetch_row()返回NULL)之前,是不能使用msyql_data_seek(),mysql_row_seek(),mysql_row_tell(),mysql_num_rows(),mysql_affected_rows()的.(然而,在取回所有行后,mysql_num_rows()是可以正确返回取回的行数的).

  • 相关阅读:
    C++的命名空间的使用
    QT编译和运行ROS功能包
    Ubuntu安装Chromium浏览器
    回文字符串(LCS变形)
    友好城市(LIS+结构体排序)
    免费馅饼
    C++ STL之set学习笔记
    Coloring Contention
    Charles in Charge
    最短路之Floyd,Dijkstra(朴素+队列优化)
  • 原文地址:https://www.cnblogs.com/coderyoyo/p/mysql_result.html
Copyright © 2011-2022 走看看