Hallo,
Ik heb op mijn site een priveberichten systeem. Er staan momenteen 225.000 records in en heet een afmeting van 60 mb.
Nu hebben wij de volgende database opbouw:
De query die we draaien om de privenberichten op te halen van een bepaald persoon is:
Explain geeft het volgende van bovenstaande query:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE priveberichten ref naar,type naar 3 const 782 Using where; Using filesort
Nu duurt het ophalen van een bericht toch zeker een dikke seconden wanneer ik er 550 op moet halen uit de database.
Hoe zou ik bovenstaande query en tabel kunnen optimaliseren? Zover ik weet ben ik al redelijk ver met het optimaliseren maar volgens mij zou het sneller kunnen.
Iemand die mij tips kan geven mbt bovenstaande info.
Piete
Ik heb op mijn site een priveberichten systeem. Er staan momenteen 225.000 records in en heet een afmeting van 60 mb.
Nu hebben wij de volgende database opbouw:
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| CREATE TABLE `priveberichten` ( `berichtid` int(4) unsigned NOT NULL auto_increment, `titel` varchar(50) NOT NULL, `datum` datetime NOT NULL, `bericht` text NOT NULL, `van` mediumint(3) unsigned NOT NULL, `naar` mediumint(3) unsigned NOT NULL, `gelezen` enum('0','1') default '0', `ip` varchar(20) default NULL, `type` tinyint(1) default NULL, `melden` tinyint(1) default NULL, PRIMARY KEY (`berichtid`), KEY `van` (`van`), KEY `naar` (`naar`), KEY `type` (`type`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
De query die we draaien om de privenberichten op te halen van een bepaald persoon is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $getPrive = $oDB->query(" SELECT berichtid, van, titel, gelezen, DATE_FORMAT(datum, '%d-%m-%y %H:%i') AS verzonden FROM priveberichten WHERE naar = " . MEMBERID . " AND type = 0 ORDER BY berichtid DESC ") or db_error(mysqli_error($oDB)); |
Explain geeft het volgende van bovenstaande query:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE priveberichten ref naar,type naar 3 const 782 Using where; Using filesort
Nu duurt het ophalen van een bericht toch zeker een dikke seconden wanneer ik er 550 op moet halen uit de database.
Hoe zou ik bovenstaande query en tabel kunnen optimaliseren? Zover ik weet ben ik al redelijk ver met het optimaliseren maar volgens mij zou het sneller kunnen.
Iemand die mij tips kan geven mbt bovenstaande info.
Piete
[ Voor 6% gewijzigd door Verwijderd op 05-07-2008 12:35 ]