Optimering af forespørgsler
Hej Drenge!Jeg har idag modtaget en mail fra vores udbyder ang. vores debatforum (Phorum), den lyder sådan:
Hej Kim,
Vi oplever i øjeblikket at jeres debatforum overbelaster vores mySQL server....
Det er queries til tabellen: Debatforum
Den har 70004 records / fylder 62 MB
De SQL queries som går igen er:
SELECT id, thread, author, subject
FROM Debatforum
WHERE approved = 'Y'
ORDER BY datestamp DESC
LIMIT
SELECT max( thread ) AS thread
FROM Debatforum
WHERE approved = 'Y'
De må kunne optimeres ! Evt. med nogle indexes eller noget...
---
Det er sgu nogle år siden jeg sidst roddet med MySQL og PHP, kunne nogen evt. give en hånd med, jeg dumper lige de to tabeller der ligger ryg til debatforummet:
#
# Table structure for table `Debatforum`
#
CREATE TABLE Debatforum (
id bigint(45) unsigned NOT NULL default '0',
datestamp datetime NOT NULL default '0000-00-00 00:00:00',
thread int(11) NOT NULL default '0',
parent int(11) NOT NULL default '0',
author char(37) NOT NULL default '',
subject char(255) NOT NULL default '',
email char(200) NOT NULL default '',
attachment char(64) NOT NULL default '',
host char(50) NOT NULL default '',
email_reply char(1) NOT NULL default 'N',
approved char(1) NOT NULL default 'N',
msgid char(100) NOT NULL default '',
PRIMARY KEY (id),
KEY author (author),
KEY datestamp (datestamp),
KEY subject (subject),
KEY thread (thread),
KEY parent (parent),
KEY approved (approved),
KEY msgid (msgid),
KEY host (host),
KEY host_2 (host)
) TYPE=MyISAM;
og
#
# Table structure for table `Debatforum_bodies`
#
CREATE TABLE Debatforum_bodies (
id bigint(25) unsigned NOT NULL auto_increment,
body text NOT NULL,
thread int(11) NOT NULL default '0',
PRIMARY KEY (id),
KEY thread (thread)
) TYPE=MyISAM;
De to tabeller fylder tilsammen godt 80 Mb...
Mvh.
Kim
