Eindelijk fatsoenlijke FK's in MySQL(4)

Pagina: 1
Acties:
  • 1.186 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 10:23

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Hier zat ik op te wachten (MySQL 4.0.2 changelog):
# InnoDB now retains foreign key constraints through ALTER TABLE and CREATE/DROP INDEX.
# InnoDB now allows foreign key constraints to be added through the ALTER TABLE syntax.
Nu staat niets meer in de weg om foreign key constraints op een prettige manier in MySQL te gebruiken. Gezien de hoeveelheid bugfixes in MySQL 4.0.2 lijkt het erop dat MySQL 4.0 snel stabiel (beta) gemaakt zal worden en dat men daarna verder gaat met de ingrijpende vernieuwingen in 4.1 (storect procedures enzo).

* Femme kijkt (bijna) elke dag vol verwachting of er nog iets interessants is veranderd in de MySQL changelog.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Grappig :)

Ik meende dat jij zo'n tegenstander van Foreign Key's was? :P

Maar het is natuurlijk nog steeds maar afwachten of het ook zo goed gaat werken als zij beweren.
Ik ben er nog steeds erg sceptisch onder, dat de foreign-key support door het opslag systeem wordt bewaakt is tot daar aan toe.
Maar dat door het veranderen van het opslag systeem de foreign key ondersteuning ineens verdwijnt is natuurlijk bizar.

Verder wil ik wel es zien hoe mysql gaat werken onder de foreign key load.
Veel DB's worden er slomer van, dit omdat er allerlei extra checks uitgevoerd moeten worden. MySQL zal er dus ook slomer van worden, maar hoeveel?

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Joepie :) Nu nog Stored Procedures, Triggers, Views, en Mysql mag meeknikkeren met de grote jongens >:)

Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 10:23

Femme

Hardwareconnaisseur

Official Jony Ive fan

Topicstarter
Volgens de InnoDB manual komen de verbeteringen ook beschikbaar in MySQL 3.23.50.
Ik meende dat jij zo'n tegenstander van Foreign Key's was?
Ik heb gezegd dat het gemis van FK's bij bepaalde toepassingen niet opweegt tegen het aanschaffen van een Oracle licentie (of het lozen van een open source db waar een developer ervaring mee heeft vs een open source db met FK's die helemaal groen is voor de devver) :) .

Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
PostgreSQL begint de laatste tijd toch ook wel wat populairder te worden. Dit ondersteunt wel de hele mikmak, maar dat gaat dan wel ten koste van de performance (en in dat laatste geval mag postgres toch nog wel wat verbeterd worden).

Maar de FK's net zoals de transacties alleen met InnoDB tables?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op donderdag 28 maart 2002 01:27 schreef Infinitive het volgende:
PostgreSQL begint de laatste tijd toch ook wel wat populairder te worden. Dit ondersteunt wel de hele mikmak, maar dat gaat dan wel ten koste van de performance (en in dat laatste geval mag postgres toch nog wel wat verbeterd worden).

Maar de FK's net zoals de transacties alleen met InnoDB tables?
# InnoDB now retains foreign key constraints through ALTER TABLE and CREATE/DROP INDEX.
# InnoDB now allows foreign key constraints to be added through the ALTER TABLE syntax.
Mwoahja ik verwacht het wel :)

Als MySQL beetje slim is gaan ze gewoon van InnoDB een full-featured db systeem maken en dan kan je altijd nog MyISAM tabellen gebruiken voor full speed. Het beste van 2 werelden heb je dan.

Acties:
  • 0 Henk 'm!

  • xoror
  • Registratie: November 1999
  • Niet online
is dat count( * ) probleem beetje opgelost met innodb ?
lijk me wel interessant hoe ze dat doen. met MVCC is het namelijk heel lastig bij te houden.

pgsql heeft daar ook een sequential scan op een table voor nodig.

Eenvoudig + Goedkoop Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 30-09 20:12

dusty

Celebrate Life!

Nog even en ze kunnen MySQL een echte database gaan noemen :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • jochemd
  • Registratie: November 2000
  • Laatst online: 24-09 23:08
Op donderdag 28 maart 2002 00:58 schreef Femme het volgende:

...
(of het lozen van een open source db waar een developer ervaring mee heeft vs een open source db met FK's die helemaal groen is voor de devver) :) .
Wat maakt dat nou uit? Misschien voor de administrator, maar voor een developer toch niets? Tenzij één van de databases zich qua syntax niet aan de relevante SQL standaarden houdt natuurlijk :(

* jochemd kijkt uit naar de dag dat || een concatenation operator is in MySQL

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 28 maart 2002 11:10 schreef jochemd het volgende:
Wat maakt dat nou uit? Misschien voor de administrator, maar voor een developer toch niets? Tenzij één van de databases zich qua syntax niet aan de relevante SQL standaarden houdt natuurlijk :(
En _dat_ is nou gelijk het nadeel van MySQL het houdt zich op sommige punten van geen kanten aan de standaard.

Sinds wanneer is een 'a' gelijk aan een 'A' :? Standaard mag je helemaal niet defaults aanmaken als je die niet opgeeft... Wat doet mysql? Geeft je verplicht een setje defaults, zelfs op een NULL row.
En noem maar op.

Zelf ben ik trouwens redelijk tot behoorlijk ervaren met postgres dus das een slechte smoes van Femme, de conversie hoeft tenslotte niet van de ene op de andere dag te gebeuren ;)

(maar Femme's keuze op mysql te blijven werken is natuurlijk niet alleen maar ingegeven door zijn gebrek aan ervaring met andere DBMS-en)

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op donderdag 28 maart 2002 00:58 schreef Femme het volgende:
Ik heb gezegd dat het gemis van FK's bij bepaalde toepassingen niet opweegt tegen het aanschaffen van een Oracle licentie
Qua FK's ben ik het met je eens, maar dat is maar een heel klein stukje van de ontbrekende functionaliteit in MySQL.
(of het lozen van een open source db waar een developer ervaring mee heeft vs een open source db met FK's die helemaal groen is voor de devver) :) .
Daar komt de aap uit de mouw :+
De devver blijft bij wat ie kent :o

Wordt de SQL support inmiddels al beter (subqueries/unions etc)?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • xoror
  • Registratie: November 1999
  • Niet online
trouwens, mysql kan niet eens case sensitive zoeken he ?
of vergis ik me? mysql behandelt alle cases gelijk of niet?
Zelf ben ik trouwens redelijk tot behoorlijk ervaren met postgres dus das een slechte smoes van Femme, de conversie hoeft tenslotte niet van de ene op de andere dag te gebeuren
eheh dan ben je vast blij met dit http://www.ca.postgresql.org/ftpsite/latest/postgresql-7.2.1.tar.gz :P

edit:
oeps, 7.2.1 moest het zijn

Eenvoudig + Goedkoop Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 28 maart 2002 11:27 schreef xoror het volgende:
trouwens, mysql kan niet eens case sensitive zoeken he ?
of vergis ik me? mysql behandelt alle cases gelijk of niet?
Ja dat kan wel... Maar daar moet je allerlei gekke handelingen voor zoeken (veld op binairy zetten (waar is dat onderscheid nou voor nodig :? ) of expliciet opgeven dat je casesensitive _wilt_ zoeken) etc zie ook al mijn reply eerder :)

Verder is het allerbelachelijkste natuurlijk die casesensitiveness van de tabelnamen versus niet casesensitive zoeken op teksten :)
Op donderdag 28 maart 2002 11:27 schreef xoror het volgende:
eheh dan ben je vast blij met dit
Lol, in een testopstelling thuis draai ik al posgres 7.2 hoor :)
En voor de liefhebbers, hij is sneller dan Firebird 1.0 in mijn opstelling :)

[edit]
Humm, synchroon editten? :)
Maar 7.2.1 zal ik gelijk es downloaden :)

Acties:
  • 0 Henk 'm!

  • xoror
  • Registratie: November 1999
  • Niet online
trouwens postgresql performt echt prima met veel records.
heb voor school search engine moeten bakken. zoek tijden waren prima (wel met stored procs gedaan).

Eenvoudig + Goedkoop Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


Acties:
  • 0 Henk 'm!

  • xoror
  • Registratie: November 1999
  • Niet online
Lol, in een testopstelling thuis draai ik al posgres 7.2 hoor :)
En voor de liefhebbers, hij is sneller dan Firebird 1.0 in mijn opstelling :)
untuned pgsql ? je kan pgsql stukken rapper maken door wat aanpassingen te doen in je postgresql.conf

Eenvoudig + Goedkoop Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 28 maart 2002 11:31 schreef xoror het volgende:
trouwens postgresql performt echt prima met veel records.
heb voor school search engine moeten bakken. zoek tijden waren prima (wel met stored procs gedaan).
Wat bedoel je daar precies mee?
Dat je veel records terug krijgt of veel records afgaat?

Een miljoen records aflopen (ok, rows met weinig aan tekst maar toch) doet mysql hier toch wel 4x zo snel als postgres geloof ik.

Maar als je echt veel vervolg queries uitvoert zal het idd vanzelf sneller worden als je stored procs kan gebruiken :)
Op donderdag 28 maart 2002 11:33 schreef xoror het volgende:
untuned pgsql ? je kan pgsql stukken rapper maken door wat aanpassingen te doen in je postgresql.conf
Tuned, ik had de query tijd al van 0.63 naar 0.27 seconden terug gebracht in een bepaald geval :)

Maar als jij denkt dat ie nog verder getuned kan worden... Hoor ik het graag :)
(mede door vacuum full analyze uit te voeren trouwens)

Acties:
  • 0 Henk 'm!

  • xoror
  • Registratie: November 1999
  • Niet online
Maar als jij denkt dat ie nog verder getuned kan worden... Hoor ik het graag
(mede door vacuum full analyze uit te voeren trouwens)
vacuum full hoef je alleen te doen als er HEEL veel data is geinsert/verwijderd/gewijzigd. meestal doe je dat 1x per nacht ofzo. er is ook een "analyze" command. kan je even snel doen om queries te testen.

je kan sort_mem, shared_mem etc omhoogschroeven.
standaard staan ze beetje conservatief. zie : http://www.phpbuilder.com/columns/smith20010821.php3
en http://developer.postgresql.org/docs/postgres/performance-tips.html

let ook op dat je als je indices gebruikt, ook checked of ze gebruikt worden. (explain ..). als ie je index niet used, moet je ff analyze; doen.

en verder it's all about indices, ik heb getest met table van 2 miljoen records. als de indices goed staan en als ze gebruikt worden, is ie super snel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
select count(*) from wordlist;
 count  
--------
 419830
(1 row)

select count(*) from worddoclist;
  count  
---------
 2528626
(1 row)

select * from wordlist,worddoclist where word_id = id and word = 'BLA';
NOTICE:  QUERY PLAN:

Nested Loop  (cost=0.00..56.49 rows=6 width=48)
  ->  Index Scan using wordlist_word_key on wordlist  (cost=0.00..4.40 rows=1 width=24)
  ->  Index Scan using worddoclist_word_id_key on worddoclist  (cost=0.00..51.94 rows=13 width=24)

EXPLAIN

zoals je ziet zijn de cost echt vrijwel nihil. (56 units ofzo en dit is ook trage bak).
[edit example toegevoegd]

Eenvoudig + Goedkoop Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


Acties:
  • 0 Henk 'm!

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 14:23
En dan nu maar hopen dat ze een keer van naam veranderen...Ik vind mySQL een beetje knullig klinken...

Het klinkt als je er alleen persoonlijke dingen mee kan doen...Terwijl met versie 4 ze redelijk met de grote jongens kan mee draaien...

Dus ik stel voor dat mySQL maar eens opzoek gaat met een nieuwe krachtige naam!

dus...

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 28 maart 2002 11:40 schreef xoror het volgende:
je kan sort_mem, shared_mem etc omhoogschroeven.
standaard staan ze beetje conservatief.
Die had ik beide al omhoog gezet idd :)
zoals je ziet zijn de cost echt vrijwel nihil. (56 units ofzo en dit is ook trage bak).
MySQL kent ook indices ;)
Maar idd, hoe groter de indices hoe kleiner het verschil tussen mysql en postgres zal worden gok ik :)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ter ere van van het verdwijnen van Webwereld (nieuws: Nederlandse techsite Webwereld stopt), sluit ik dit topic van @Femme (zie artikel voor context ;)).

Press F to pay respects. ;w

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
F

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1

Dit topic is gesloten.