• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于处置百万级大批量数据的mysql运行几个重要点_mysql

mysql 搞代码 7年前 (2018-06-09) 165次浏览 已收录 0个评论
文章目录[隐藏]

关于处理百万级大批量数据的mysql运行几个重要点

处理大批量百万级的数据几点重要知识点:

一:设置php运行的内存配置 ini_set(“memory_limit”,”1200M”);

  在php.ini中有如下配置

  ; Maximum input variable nesting level
  ; http://php.net/max-input-nesting-level
  ;max_input_nesting_level = 64

  ; How many GET/POST/COOKIE input variables may be accepted
  ; max_input_vars = 1000

  ; Maximum amount of memory a script may consume (128MB)
  ; http://php.net/memory-limit
  memory_limit = 100M

  会有一个默认的配置,导致运行到一定数量的时候,报错,无法运行下去。

二:设置脚本最大执行时间 set_time_limit ( int $seconds )

  方法具体详情

三:不设置缓存结果 mysql_unbuffered_query

  在处理大批量数据的时候优势非常大,

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行

说明

resource mysql_unbuffered_query ( string $query [, resource $link_identifier ] )

mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query,但不像 mysql_query() 那样自动获取并缓存结果集。一方面,这在处理很大的结果集时会节省可观的内存。另一方面,可以在获取第一行后立即对结果集进行操作,而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时,必须指定可选参数 link_identifier

Note:

mysql_unbuffered_query() 的好处是有代价的:在 mysql_unbuffered_query() 返回的结果集之上不能使用mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。

参见 mysql_query()

 

四:取消变量缓存 unset($x)

  在循环的结束环节,使用unset方法释放变量占用的内存。

 

 

具体代码例子(使用pdo):

$pdo = new PDO("mysql:host=127.0.0.1;dbname=aa","root","root");  $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); ini_set("memory_limit","1200M"); set_time_limit(0);   $sql = 'select url,num from cas_key limit 100000 '; $rs = $pdo->query($sql);  while($value = $rs->fetch()){     unset($xxx);     unset($xxx);     unset($xxx); } var_dump(memory_get_usage());//查看内存占用方法

 

 

如有更多优化方法,欢迎请教指点!

 

 

 

 

欢迎大家阅读《关于处置百万级大批量数据的mysql运行几个重要点_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于处置百万级大批量数据的mysql运行几个重要点_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址