如何将查询分解为较小的查询

时间:2018-01-17 10:01:10

标签: php mysql

所以,我有一个PHP通过DB中的大表,然后当我得到结果时,我将它们放入CSV。但是这个表不断增长,现在我得到了错误,允许内存大小耗尽。

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<div id="content">
  <h1>My Favorite Flowers</h1>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
  <div class="flowers">
    <h2>Hydrangia</h2>
    <p><i>Hydrangea</i></p>
    <img src="img/hydrangia.jpg" />
    <p>Sun</p>
  </div>
</div>

由于表的大小,我无法将其放入csv。我怎么能减少这个查询的大小?我应该使用LIMIT然后把它分成两半吗?

1 个答案:

答案 0 :(得分:3)

如果您正在写入CSV,请使用fopen / fwrite保持流而不是尝试连接到字符串(如果它很大,将导致内存不足),对于数据库查询本身,使用_fetch_array()您可以将结果保持在服务器上,同时只从PHP中逐行检索。

这应该会使内存使用率保持在较低水平。