Quellcode durchsuchen

sync Japanese document with r16153.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16322 44c647ce-9c0f-0410-b52a-842ac1e357ba
takagi vor 16 Jahren
Ursprung
Commit
97d1335a6f
1 geänderte Dateien mit 49 neuen und 1 gelöschten Zeilen
  1. 49 1
      documentation/manual/ja/module_specs/Zend_Paginator-Usage.xml

+ 49 - 1
documentation/manual/ja/module_specs/Zend_Paginator-Usage.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Reviewed: no -->
-<!-- EN-Revision: 15617 -->
+<!-- EN-Revision: 16153 -->
 <sect1 id="zend.paginator.usage">
     <title>使用法</title>
 
@@ -173,6 +173,54 @@ $this->view->paginator = $paginator;
         </para>
     </sect2>
 
+    <sect2 id="zend.paginator.usage.dbselect">
+        <title>DbSelect および DbTableSelect アダプタ</title>
+        <para>
+            大半のアダプタの使用法は非常にわかりやすいものです。
+            しかし、データベースアダプタについてはより詳細な説明が必要です。
+            一般的に想像されるのとは異なり、これらのアダプタは、
+            数を数える際にデータベースの全レコードを取得するわけでは
+            <emphasis>ありません</emphasis>。そのかわりに、アダプタが元のクエリを修正し、
+            それに対応する COUNT クエリを作成します。
+            Paginator は、その COUNT クエリを実行して行数を取得するのです。
+            そのぶんデータベースとの余分なやりとりが必要となりますが、結果セット全体を取得して
+            <methodname>count()</methodname> を使うよりは何倍も高速になります。
+            大量のデータを扱う場合などは特にそうです。
+        </para>
+
+        <para>
+            データベースアダプタは、すべてのモダンなデータベース上で実行できる
+            もっとも効率的なクエリを作成しようとします。
+            しかし、使用するデータベースやスキーマ設定によっては
+            行数を取得するのにもっと効率的な方法があるかもしれません。
+            そのような場合のために、データベースアダプタでは独自の COUNT
+            クエリを設定できるようにもなっています。たとえば、
+            別々のテーブルにある blog の投稿の数を調べるには、
+            次の用に設定すればより高速な count クエリが使用できるでしょう。
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('posts'));
+$adapter->setRowCount(
+    $db->select()
+       ->from(
+            'item_counts',
+            array(
+               Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => 'post_count'
+            )
+         )
+);
+
+$paginator = new Zend_Paginator($adapter);
+]]></programlisting>
+
+        <para>
+            この方法は、小規模なデータや単純な select クエリの場合にはあまり劇的な効果を得られません。
+            しかし、複雑なクエリや大規模なデータを扱う場合は
+            かなりパフォーマンスが向上することでしょう。
+        </para>
+    </sect2>
+
     <sect2 id="zend.paginator.rendering">
         <title>ビュースクリプトによるページのレンダリング</title>