You are looking for a way to quickly setup the Zend Framework? You are tired of wasting time in writing repetitive sections of code over and over again? You are looking for improvement in the development time? You would like to have a rapid prototyping tool for very early system demonstration?
Make the switch to the BOZA Framework – the faster, easier, better way to generate your Zend® based PHP application.
26
2009
Free Zend Framework-based code generator from UML2 models
25
2009
Zend Framework 1.9.2 Released
The Zend Framework team is pleased to announce the immediate availability of
the 1.9.2 release. This release is the second maintenance release in the 1.9
series. Over 40 issues have been resolved for this release, covering more
than 15 different components.
You may download it from the Zend Framework site .
24
2009
20
2009
xtrabackup-0.9
Dear Community,
The release 0.9 of the opensource backup tool for InnoDB and XtraDB is available for download.
Changelog:
- tar4ibd could not treat over 8GB file, now max 64GB
- prepare-speed-hack is added
Fixed bugs:
- Bug #386179: “InnoDB: Error: space id in fsp header 143088, but in the page header 0″
- Bug #394374: “Can’t compile with MySQL 5.1″
- Bug #394781: “xtrabackup requires write permissions on original ibdata1″
- Bug #395977: “xtrabackup 0.8 crashes during prepare after tar4ibd”
- Bug #396069: “hardcoded XTRABACKUP_VERSION”
- Bug #395407: “innobackupex reports “perl is too old””
- Bug #408966: “Unclear license terms”
- Bug #389360: “Partition files not being copied in innobackupex-1.5.1”
- Bug #394464: “batch scp copy of .frm, .MRG etc files”
The binary packages for RHEL4,5, Debian, FreeBSD, MacOS as well as source code of the XtraBackup is available on http://www.percona.com/mysql/xtrabackup/0.9/.
The project lives on Launchpad : https://launchpad.net/percona-xtrabackup and you can report bug to Launchpad bug system:
https://launchpad.net/percona-xtrabackup/+filebug. The documentation is available on our Wiki.
For general questions use our Pecona-discussions group, and for development question Percona-dev group.
For support, commercial and sponsorship inquiries contact Percona.
Entry posted by Aleksandr Kuzminsky |
One comment
19
2009
Indexing Email Messages with PHP, Zend Lucene and Sphinx
The Zend Framework provides an implementation of the Lucene search engine that can be used for full-text search. And there’s also Sphinx, the standalone (and very fast) full-text indexer for MySQL, PostgreSQL and XML content. This article looks at these two implementations, comparing and contrasting them and illustrating how they can be used to add full-text search to an application.
17
2009
XtraDB storage engine release 1.0.3-7
Dear Community,
Today we are announcing XtraDB release 7.
This is the last release based on InnoDB plugin version 1.0.3, as you might know Innobase has released 1.0.4.
The release includes following new features:
- MySQL 5.1.37 as a base release
- speed hack for buf_flush_insert_sorted_into_flush_list controlled by the new variable innodb_fast_recovery
Fixed bugs:
- MySQL Bugs: #45357: 5.1.35 crashes with Failing assertion: index->type & DICT_CLUSTERED
- Bug #405714 in Percona-XtraDB: “During page flush it may be enqueued for flush again when innodb_flush_neighbours=0”
- Bug #395783 in Percona-XtraDB: “main.innodb_bug42101 fails on 5.1.36”
This fixes also http://bugs.mysql.com/bug.php?id=45749 and http://bugs.mysql.com/bug.php?id=42101
The builds for RedHat4,5 and Debian are located on http://www.percona.com/mysql/xtradb/5.1.37-7/
The latest source code of XtraDB, including development branch you can find on LaunchPAD.
Please report any bugs found on Bugs in Percona XtraDB Storage Engine for MySQL.
For general questions use our Pecona-discussions group, and for development question Percona-dev group.
For support, commercial and sponsorship inquiries contact Percona
Entry posted by Aleksandr Kuzminsky |
6 comments
16
2009
A micro-benchmark of stored routines in MySQL
Ever wondered how fast stored routines are in MySQL? I just ran a quick micro-benchmark to compare the speed of a stored function against a “roughly equivalent” subquery. The idea — and there may be shortcomings that are poisoning the results here, your comments welcome — is to see how fast the SQL procedure code is at doing basically the same thing the subquery code does natively (so to speak).
Before we go further, I want to make sure you know that the queries I’m writing here are deliberately mis-optimized to force a bad execution plan. You should never use IN() subqueries the way I do, at least not in MySQL 5.1 and earlier.
I loaded the World sample database and cooked up this query:
-
SELECT sql_no_cache sum(ci.Population) FROM City AS ci
-
WHERE CountryCode IN (
-
SELECT DISTINCT co.Code FROM Country AS co
-
INNER JOIN CountryLanguage AS cl ON cl.CountryCode = co.Code
-
WHERE lower(cl.LANGUAGE) = ‘English’);
-
+——————–+
-
| sum(ci.Population) |
-
+——————–+
-
| 237134840 |
-
+——————–+
-
1 row IN SET (0.23 sec)
This pretty consistently runs in just about 1/4th of a second. If you look at the abridged explain plan below, you’ll see the query is doing a table scan against the first query, and then executing the subquery for each row:
-
mysql> EXPLAIN SELECT ….\G
-
*************************** 1. row ***************************
-
id: 1
-
select_type: PRIMARY
-
TABLE: ci
-
type: ALL
-
possible_keys: NULL
-
KEY: NULL
-
key_len: NULL
-
ref: NULL
-
rows: 4079
-
Extra: USING WHERE
-
*************************** 2. row ***************************
-
id: 2
-
select_type: DEPENDENT SUBQUERY
-
*************************** 3. row ***************************
-
id: 2
-
select_type: DEPENDENT SUBQUERY
Now I took the subquery and basically rewrote it as a stored function.
-
mysql> delimiter //
-
mysql> CREATE FUNCTION speaks_english(c char(3)) returns integer deterministic
-
> begin
-
> declare res int;
-
> SELECT count(DISTINCT co.Code) INTO res FROM Country AS co INNER JOIN CountryLanguage AS cl ON cl.CountryCode = co.Code WHERE lower(cl.LANGUAGE) = ‘English’ AND co.Code = c;
-
> RETURN res;
-
> end//
-
mysql> delimiter ;
Now the query can be rewritten as this:
-
mysql> SELECT sql_no_cache sum(ci.Population) FROM City AS ci WHERE speaks_english(CountryCode)> 0;
-
+——————–+
-
| sum(ci.Population) |
-
+——————–+
-
| 237134840 |
-
+——————–+
-
1 row IN SET (1.00 sec)
If we explain it, we get output similar to the first table shown above, but the further two rows are not shown. The query can’t be optimized to use indexes, and the stored function is opaque to the optimizer. This is why I purposefully wrote the subquery badly in the first query! (If you think of a better way to compare apples and uhm, apples… please comment).
The poorly-optimized-subquery portion of the query essentially happens inside that function now.
And it’s four times slower, consistently, and that’s all I wanted to show here. Thanks for reading.
Entry posted by Baron Schwartz |
7 comments




