Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
2922c9af
Commit
2922c9af
authored
Feb 09, 2007
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
caching docs
parent
a5b31e95
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
90 additions
and
8 deletions
+90
-8
Interface.php
lib/Doctrine/Adapter/Statement/Interface.php
+1
-1
Cache.php
lib/Doctrine/Cache.php
+2
-1
Db.php
lib/Doctrine/Db.php
+2
-0
Statement.php
lib/Doctrine/Db/Statement.php
+2
-2
Caching - Availible options.php
manual/docs/Caching - Availible options.php
+12
-0
Caching - Introduction.php
manual/docs/Caching - Introduction.php
+45
-0
documentation.php
manual/documentation.php
+26
-4
No files found.
lib/Doctrine/Adapter/Statement/Interface.php
View file @
2922c9af
...
...
@@ -133,7 +133,7 @@ interface Doctrine_Adapter_Statement_Interface
* bound parameters in the SQL statement being executed.
* @return boolean Returns TRUE on success or FALSE on failure.
*/
public
function
execute
(
array
$params
=
array
()
);
public
function
execute
(
$params
=
null
);
/**
* fetch
*
...
...
lib/Doctrine/Cache.php
View file @
2922c9af
...
...
@@ -18,6 +18,7 @@
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Db_EventListener'
);
/**
* Doctrine_Cache
*
...
...
lib/Doctrine/Db.php
View file @
2922c9af
...
...
@@ -428,7 +428,9 @@ class Doctrine_Db implements Countable, IteratorAggregate, Doctrine_Adapter_Inte
if
(
!
empty
(
$params
))
{
$stmt
=
$this
->
dbh
->
prepare
(
$statement
);
return
$stmt
->
execute
(
$params
);
}
else
{
if
(
!
$skip
)
{
$stmt
=
$this
->
dbh
->
query
(
$statement
);
...
...
lib/Doctrine/Db/Statement.php
View file @
2922c9af
...
...
@@ -194,7 +194,7 @@ class Doctrine_Db_Statement implements Doctrine_Adapter_Statement_Interface
* bound parameters in the SQL statement being executed.
* @return boolean Returns TRUE on success or FALSE on failure.
*/
public
function
execute
(
array
$params
=
array
()
)
public
function
execute
(
$params
=
null
)
{
$event
=
new
Doctrine_Db_Event
(
$this
,
Doctrine_Db_Event
::
EXECUTE
,
$this
->
stmt
->
queryString
,
$params
);
...
...
manual/docs/Caching - Availible options.php
0 → 100644
View file @
2922c9af
Doctrine_Cache
offers
many
options
for
performance
fine
-
tuning
:
<
ul
>
<
li
\
>
savePropability
<
br
\
>
Option
that
defines
the
propability
of
which
a
query
is
getting
cached
.
<
br
\
><
br
\
>
<
li
\
>
cleanPropability
<
br
\
>
Option
that
defines
the
propability
the
actual
cleaning
will
occur
when
calling
Doctrine_Cache
::
clean
();
<
br
\
><
br
\
>
<
li
\
>
statsPropability
<
ul
\
>
manual/docs/Caching - Introduction.php
0 → 100644
View file @
2922c9af
<?php
?>
Doctrine_Cache offers an intuitive and easy-to-use query caching solution. It provides the following things:
<ul>
<li
\
>
Multiple cache backends to choose from (including Memcached, APC and Sqlite)
<br
\
><br
\
>
<li
\
>
Manual tuning and/or self-optimization. Doctrine_Cache knows how to optimize itself, yet it leaves user
full freedom of whether or not he/she wants to take advantage of this feature.
<br
\
><br
\
>
<li
\
>
Advanced options for fine-tuning. Doctrine_Cache has many options for fine-tuning performance.
<br
\
><br
\
>
<li
\
>
Cache hooks itself directly into Doctrine_Db eventlistener system allowing it to be easily added on-demand.
</ul>
<br
\
><br
\
>
Doctrine_Cache hooks into Doctrine_Db eventlistener system allowing pluggable caching.
It evaluates queries and puts SELECT statements in cache. The caching is based on propabalistics. For example
if savePropability = 0.1 there is a 10% chance that a query gets cached.
<br
\
><br
\
>
Now eventually the cache would grow very big, hence Doctrine uses propabalistic cache cleaning.
When calling Doctrine_Cache::clean() with cleanPropability = 0.25 there is a 25% chance of the clean operation being invoked.
What the cleaning does is that it first reads all the queries in the stats file and sorts them by the number of times occurred.
Then if the size is set to 100 it means the cleaning operation will leave 100 most issued queries in cache and delete all other cache entries.
<br
\
><br
\
>
<br
\
><br
\
>
Initializing a new cache instance:
<br
\
><br
\
>
<?php
renderCode
(
"<?php
\$
dbh = new Doctrine_Db('mysql:host=localhost;dbname=test',
\$
user,
\$
pass);
\$
cache = new Doctrine_Cache('memcache');
// register it as a Doctrine_Db listener
\$
dbh->addListener(
\$
cache);
?>"
);
?>
<br
\
><br
\
>
Now you know how to set up the query cache. In the next chapter you'll learn how to tweak the cache in order to get maximum performance.
<br
\
><br
\
>
manual/documentation.php
View file @
2922c9af
...
...
@@ -102,6 +102,7 @@ $menu = array('Getting started' =>
'Introduction'
,
'Table and class naming'
,
'Field(Column) naming'
,
'Column aliases'
,
'Table options'
,
'Data types and lengths'
,
'Constraints and validators'
,
...
...
@@ -114,7 +115,13 @@ $menu = array('Getting started' =>
'Autoincremented'
,
'Natural'
,
'Composite'
,
'Sequence'
)
'Sequence'
),
'Indexes'
=>
array
(
'Introduction'
,
'Adding indexes'
,
'Index options'
,
'Special indexes'
,
),
),
'Connection management'
=>
array
(
...
...
@@ -372,7 +379,10 @@ $menu = array('Getting started' =>
array
(
'Introduction'
,
'SELECT queries'
,
'SELECT queries'
=>
array
(
'DISTINCT keyword'
,
'Aggregate values'
,
),
'UPDATE queries'
,
'DELETE queries'
,
'FROM clause'
,
...
...
@@ -380,7 +390,6 @@ $menu = array('Getting started' =>
'Conditional expressions'
=>
array
(
'Literals'
,
'Input parameters'
,
'Operators and operator precedence'
,
'Between expressions'
,
'In expressions'
,
...
...
@@ -398,7 +407,10 @@ $menu = array('Getting started' =>
'Collection functions'
),
'GROUP BY, HAVING clauses'
,
'ORDER BY clause'
,
'ORDER BY clause'
=>
array
(
'Introduction'
,
'Sorting by an aggregate value'
,
'Using random order'
),
'LIMIT and OFFSET clauses'
=>
array
(
'Introduction'
,
'Driver portability'
,
...
...
@@ -421,6 +433,16 @@ $menu = array('Getting started' =>
'Isolation levels'
,
'Deadlocks'
,
),
'Caching'
=>
array
(
'Introduction'
,
'Availible options'
,
'Drivers'
=>
array
(
'Memcache'
,
'APC'
,
'Sqlite'
),
),
'Native SQL'
=>
array
(
'Scalar queries'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment