[mySQL] Table Performance verbeteren

Pagina: 1
Acties:

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08-2025
Ik heb deze table structuur...
code:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE verse (
  verseid int(10) unsigned NOT NULL auto_increment,
  verse mediumtext NOT NULL,
  answerid int(10) unsigned NOT NULL default '0',
  startdate int(10) unsigned NOT NULL default '0',
  startuserid int(10) NOT NULL default '0',
  stopdate int(10) unsigned NOT NULL default '0',
  stopuserid int(10) NOT NULL default '0',
  tried int(5) unsigned NOT NULL default '0',
  active smallint(6) NOT NULL default '1',
  PRIMARY KEY  (verseid)
) TYPE=MyISAM;

...en doe onderstaande query...
code:
1
2
$query = 'SELECT * FROM verse v, user u WHERE v.active = 1 
AND v.startuserid = u.userid ORDER BY v.startdate DESC LIMIT 1';

...moet ik dan mijn table uitbreiden voor betere performance met onderstaande KEY?
code:
1
KEY active (active,startuserid)

Ik zie namelijk nog steeds niet goed in wanneer ik PRIMARY KEY, INDEX of UNIQUE moet gebruiken!

43% of all statistics are worthless


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Je kunt een INDEX maken op velden die vaak in je WHERE clasule voorkomen, dit verkort de zoektijd.

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 09:51

TheDane

1.618

PRIMARY key = het ID waarmee je 1 uniek record in je tabel identificeert, dus bij jou het verseid
INDEX zie reply hierboven

UNIQUE: voor die velden die uniek moeten zijn op database niveau. bijvoorbeeld login name, maar die heb je niet :)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

je kunt met EXPLAIN uitvinden wat MySQL doet. Kijk ook de manual daarover eens door, staat een hoop in (maar niet genoeg helaas)

Klaar voor een nieuwe uitdaging.


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Het is ook nuttig om de velden bij hun naam te noemen, ipv *.

Rustacean


  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08-2025
vgouw: Deze WHERE clasule komt vaak voor, dus het is wel verstandig de KEY op te nemen?
chem: Kwam ik ook achter :(
Manuzhai: Heb ik ook, alleen voor op het forum heb ik het maar even ingekort.

Zijn er trouwens goede tutorials over mySQl-performance? phpfreakz.nl & phpbuilder.org leveren maar weinig op, net als de manual!

43% of all statistics are worthless

Pagina: 1