【1】メモリを喰い過ぎてパンクしたりはしません
メモリの利用量はあらかじめ決められていますので「非常に喰う」という状況にはなりません
もちろん、メモリ関係のセッティングを勝手に調整して、しかも調整に失敗している場合は除きます
http://dev.mysql.com/doc/refman/5.1/ja/memory-use.html
【2】行数が多いとハードディスクからの読み込みが負担になります
行数が多いと、クエリキャッシュなどが力を発揮できず(すぐに満タンとなってしまい、古いものから順に削除されてしまうため、メモリ上にデータを残して置けなくなり、毎回毎回ハードディスクからデータを取ってくるようになってしまうため)システム全体のパフォーマンスはすこぶる悪くなるかもしれません
データベースを利用する場合には「少ないアクセスで最大の効果をあげるように工夫する必要があります」ので「クエリ実行結果が出来る限りコンパクトになるようにlimitなどを意識して使う」ようにしましょう(MySQLに限らず他のデータベースでも同様です)
MySQLサーバが動いている環境や、DB構成がInnnoDBかMyISAMかによって変わってきます。
たとえばWindows上でInnnoDBの場合、LIMIT句がないとバッファプールに使われる可能性はあります。
さらにWindows版のInnoDBの場合、ファイルシステムのキャッシュを使わないので、メモリがかなり浪費される可能性があります。
>行数の大きいデータの場合に、メモリを非常に喰うのでしょうか?
どのくらいの件数を言ってるか不明ですが、10万件とかその程度なら問題ないレベルです。
LMITは、データが1000件あるときに、
WEBとかでよくあるように、1-10、11-20,21-30とかのように
部分を取得したいときに使うと便利なだけです。
LMITをつけても、検索条件に該当するレコードを取得して、そこから間引くだけなので
メモリー消費量が特にへるわけでもないんでもないです。
そもそもLMITを使うことで、メモリー消費量を抑えようとかそういう考えの人はいないと
思いますけど。実際に、メモリーの消費量が抑えられるとしても。
コメント(1件)
LIMITの有無でバッファプール利用の有無が決まったりはしません
(2)Windows版のInnoDBの場合、ファイルシステムのキャッシュを使わないので、メモリがかなり浪費される可能性があります。
Windowsでは「ファイルシステムのキャッシュを使わないのでダブルキャッシュという無駄はそもそも発生しません」という但し書きですね
参考リンク先を探すところまでは優秀だと思いますが、そこに書かれていることを捻じ曲げて理解してしまっては元も子もありません。残念ですね