mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-27 14:28:56 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@330340 c90b9560-bf6c-de11-be94-00142212c4b1
187 lines
4.8 KiB
XML
187 lines
4.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
|
|
<book xml:id="book.mysqlnd-qc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Mysqlnd query result cache plugin</title>
|
|
<titleabbrev>mysqlnd_qc</titleabbrev>
|
|
|
|
<preface xml:id="intro.mysqlnd-qc">
|
|
&reftitle.intro;
|
|
<para>
|
|
The mysqlnd query result cache plugin adds easy to use client-side query
|
|
caching to all PHP MySQL extensions using
|
|
<link linkend="book.mysqlnd">mysqlnd</link>.
|
|
</para>
|
|
<para>
|
|
As of version PHP 5.3.3 the MySQL native driver for PHP (
|
|
<literal>mysqlnd</literal>)
|
|
features an internal plugin C API. C plugins, such as the query cache
|
|
plugin, can extend the functionality of
|
|
<link linkend="book.mysqlnd">mysqlnd</link>.
|
|
</para>
|
|
<para>
|
|
Mysqlnd plugins such as the query cache plugin operate transparent
|
|
from a user perspective. The cache plugin supports all PHP applications
|
|
and all PHP MySQL extensions (
|
|
<link linkend="ref.mysqli">mysqli</link>,
|
|
<link linkend="ref.mysql">mysql</link>,
|
|
<link linkend="ref.pdo-mysql">PDO_MYSQL</link>).
|
|
It does not change existing APIs.
|
|
</para>
|
|
<para>
|
|
No significant application changes are required to cache a query.
|
|
The cache has two operation modes. It will either cache all
|
|
queries (not recommended) or only those queries marked with a
|
|
certain SQL hint (recommended).
|
|
</para>
|
|
|
|
<section xml:id="mysqlnd-qc.key-features">
|
|
<title>Key Features</title>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Transparent and therefore easy to use
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
supports all PHP MySQL extensions
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
no API changes
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
very little application changes required
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Flexible invalidation strategy
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Time-to-Live (TTL)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
user-defined
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Storage with different scope and life-span
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Default (Hash, process memory)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link linkend="ref.apc">APC</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
MEMCACHE
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
sqlite
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
user-defined
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Built-in slam defense to prevent cache stampeding.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="mysqlnd-qc.limitations">
|
|
<title>Limitations</title>
|
|
<para>
|
|
The current 1.0.1 release of PECL mysqlnd_qc does
|
|
not support PHP 5.4. Version 1.1.0-alpha lifts this limitation.
|
|
</para>
|
|
<para>
|
|
Prepared statements and unbuffered queries are fully supported.
|
|
Thus, the plugin is capable of caching all statements issued
|
|
with <literal>mysqli</literal> or <literal>PDO_MySQL</literal>, which are
|
|
the only two PHP MySQL APIs to offer prepared statement support.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="mysqlnd-qc.name">
|
|
<title>On the name</title>
|
|
<para>
|
|
The shortcut <literal>mysqlnd_qc</literal>
|
|
stands for <literal>mysqlnd query cache plugin</literal>. The name
|
|
was chosen for a quick-and-dirty proof-of-concept. In the beginning
|
|
the developers did not expect to continue using the code base.
|
|
Sometimes PECL/mysqlnd_qc has also been called
|
|
<literal>client-side query result set cache</literal>.
|
|
</para>
|
|
</section>
|
|
|
|
</preface>
|
|
|
|
|
|
&reference.mysqlnd-qc.quickstart;
|
|
&reference.mysqlnd-qc.setup;
|
|
&reference.mysqlnd-qc.constants;
|
|
&reference.mysqlnd-qc.reference;
|
|
&reference.mysqlnd-qc.changes;
|
|
|
|
</book>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|