Sven Rautenberg: MySQL Datenbank auslasten!?

Beitrag lesen

Moin!

Ich habe mit einem kleinen Projekt begonnen, dabei können bis zu 100 - 200 neue datenbank einträge pro minuten entstehen, und das ganze mit UNIQUE im MySQL

nach fast 12000 beiträgen steht die seite still, nun meine Frage hat mysql da irgentwelche grenzen? (ja ich hatte selbst auch schon grössere datenbanken aber nicht so schnell XD)

MySQL hat Grenzen - die liegen bei mehrern Milliarden Datensätzen, sofern die ausreichend groß sind. Dein winziger Bestand von 12.000 Stück ist ein Witz für MySQL.

Allerdings dann nicht, wenn du durch falsche Tabellenstrukturen und mangelhafte Indizierung der Datenbank extrem viel Zusatzarbeit aufbürdest. Eigentlich alle Probleme, die bei geringer Datensatzzahl auftreten, sind auf mangelhafte Indizierung zurückzuführen.

Deshalb ist eine Problemanalyse notwendig: Welche Storage-Engine benutzt du? Welche Tabellenstruktur hast du? Welche Querys werden darauf losgelassen? Was sagen die Querys, wenn man sie mit EXPLAIN den Ausführungsplan erklären lässt? Wie beeinflussen sich schreibende und lesende Querys (zeitliche Reihenfolge, Transaktionen, etc.)?

und ist es besser, 200 - 400 einträge zu haben statt UNIQUE in der MySQL configurierung? Auch von der Performance her, weil es sind nur 100 - 200 weils schneller nicht gehr XD

Ein UNIQUE-Index ist natürlich ein kleines Performance-Hindernis, weil die Eindeutigkeit des Schlüssels vor jeder Veränderung und Hinzufügung eines Datensatzes geprüft werden muss. Es ist aber keine RIESIGE Performance-Bremse. Denn man kann UNIQUE ja nicht einfach weglassen und hoffen, dass gegen diese Eindeutigkeitsforderung schon nicht verstoßen werden wird. Irgendeine Prüfung der Eindeutigkeit ist immer notwendig - und die Datenbank kriegt das eigentlich am besten selbst hin.

- Sven Rautenberg