Hallo,

is een mysql-tabel default gesorteerd of is er een manier om dat voor elkaar te krijgen?

Groeten,

slibbe
Pholeron schreef op 13.07.2006 10:05
@leo
.. Niet helemaal waar.. ze worden standaard getoond op volgorde waarin de records zijn toegevoegd. (dit hoeft niet persé de volgorde van de ID's te zijn ;)


Ik bedoel, die zijn meestal uniek en daarom worden die altijd standaart gesorteerd (die lopen dus op volgorde)
Leo schreef op 13.07.2006 14:18
[quote=Pholeron schreef op 13.07.2006 10:05]@leo
.. Niet helemaal waar.. ze worden standaard getoond op volgorde waarin de records zijn toegevoegd. (dit hoeft niet persé de volgorde van de ID's te zijn ;)


Ik bedoel, die zijn meestal uniek en daarom worden die altijd standaart gesorteerd (die lopen dus op volgorde)[/quote]Nee, dat is slechts een bijkomstigheid in een aantal gevallen. Hij sorteert gewoon op toevoegen van records, daar heeft de ID verder weinig (lees: niets) mee te maken.
Oh ja, een database is veel meer dan alleen een bak met gegevens. De intelligentie die er achter zit, bv. indexen e.d., is veel belangrijker. Al is dat juist 1 van de zwakste punten van MySQL wanneer je het vergelijkt met PostgreSQL, Oracle, DB2, etc.


Volgens mij zitten er in die anders DBMS'en ook indexen. Oracle is trouwens veel ingewikkelder/professioneler dan MySQL.
@Martijn: Tuurlijk zitten er in andere databases ook indexen. Maar dat is juist 1 van de zwakke punten van MySQL. Hoeveel indexen je op 1 tabel ook gebruikt, MySQL gebruikt slechts 1 index per keer.

Het optimaliseren van je queries door het plaatsen van extra indexen, is binnen MySQL dan ook niet zo heel erg zinvol. Met andere databases valt daar een hoop tijdswinst mee te halen.

MySQL is het debiele neefje binnen de database-familie...
Mijn programmeer ervaring is vooral in 'debiele' talen zoals Cobol en met DB2 als database. Dan los je dergelijke problemen op door een key bestaand uit meerdere velden te kiezen.

Wat doe je met een dergelijk probleem als de key maar uit één veld mag bestaan?
'een tabel zonder key' en 'een key bestaand uit meerdere velden' zijn 2 totaal verschillende dingen! In het eerste geval heb je geen key, in het tweede geval het je wél een key.

Een primairy key kan uit meerdere velden bestaan, zie de handleiding.

PRIMARY KEY (voornaam, achternaam)
Frank schreef op 13.07.2006 16:16
'een tabel zonder key' en 'een key bestaand uit meerdere velden' zijn 2 totaal verschillende dingen! In het eerste geval heb je geen key, in het tweede geval het je wél een key.)

Ja, dat lijkt me duidelijk.

Een primairy key kan uit meerdere velden bestaan, zie de handleiding.

PRIMARY KEY (voornaam, achternaam)

Really? Dat is goed nieuws.
Ik ben er nog niet uit hoe meer dan één veld in de key te krijgen. Ik had dit overigens eerder ook al geprobeerd.

Ik heb te maken met MySQL 3.23.58 . Ik kan niet direct vinden dat dat een probleem zou moeten opleveren wat dit betreft. phpMyAdmin versie 2.7.0 pl1. Wellicht dat ik daarin een beperking moet zoeken.


off-topic: prettig dat er gereageerd wordt op newbie-berichten overigens.
Zo iets?:

Tabel met een primary key
met meerdere kolommen:

CREATE TABLE test(

  id INT(10) unsigned NOT NULL default '0',
  id2 INT(10) unsigned NOT NULL default '0',
  veld1 VARCHAR(100) NOT NULL default '',

  PRIMARY KEY ( id, id2 )
);


Tabel met een primary key
met meerdere kolommen en
een index met meerdere kolommen:

CREATE TABLE test(

  id INT(10) unsigned NOT NULL default '0',
  id2 INT(10) unsigned NOT NULL default '0',
  veld1 VARCHAR(100) NOT NULL default '',

  PRIMARY KEY ( id, id2 ),
  KEY index1 ( id, id2, veld1(20) )
);


edit:

Trouwens "INT(10)" heeft niets met de maximale grote van het veld te maken.
Heb nu conform de post van Martijn! de tabellen test1 en test2 gecreëerd.
Ik moet even kijken wat dit betekent.

Thx.

Reageren