phpbar.de logo

Mailinglisten-Archive

Server Aufstocken

Server Aufstocken

Andreas Müller mysql at universalware.de
Mon Sep 27 14:34:49 CEST 2004


Hallo ,

> es sind 1 GB RAM in den Server drin

der RAM Bedarf richtet sich sehr stark nach der Datenbankgröße. Daher kann
es schon möglich sein das mehr RAM hier sehr viel bringen kann.

> Das problem bei den server zur zeit ist, das sie manchmal 
> wenn große suchanfragen kommen, Bei denen aus mehren 
> millionen daten eben einige tausende rausgesucht werden 
> müssen, er blckiert dann die tabellen "locked" - und das 
> kostet gedult bei den kunden (die sie ja nicht haben)

Mehrer parallele Selects machen garnichts. Beim Select kommt ein read-lock
damit Schreibzugriffe geblockt werden bis der Lesevorgang beendet ist. Mit
InnoDB kann man das zwar vermeiden, handelt sich aber einen etwas
langsameren Table-Handler ein um verliert einiges an Möglichkeiten der
Datensicherung und Wiederherstellung da alles einer oeder wenigen großen
Dateien liegt.

> Die slow-log ist voll mit unserem insert für die suchtabelle
> Diese wird (dynamisch aktualliesiert alle 30 min!
> Grund dafür ist, das sie mehrer Fulltext indexe hat und diese 
> datei bei zu
> vielen einzelnen insert kaputt geht
> Daher alle 30 min ein großes insert (max 1 MB)

Also hier ist definitiv was faul. Egal was du machst, eine Tabelle sollte
nicht kaputt gehen. Bisher habe ich sowas auch bei MySQL (fast) noch nicht
erlebt. Eigentlich nur dann wenn irgendwas am System faul war.

Ich persönlich würde folgendes machen:
- Der Web-Server schein ja nicht das Problem zu sein. Also den mal lassen.
- Dem DB Server einen zweiten dazustellen und diesen als
Master-Slave-Replikation (läuft bei mir produktiv seit Monaten) anbinden.

So um nun den zweiten DB Server sinnvoll nutzen zu können muss man in der
Anwendung was tun. Gut wäre es da wenn man Schreibzugriffe von Lesezugriffen
trennen kann.
Lesezugriffe verteilt man per Zufallsgenerator am besten auf einen der
beiden Server, schreiben greift man immer auf den "Master" zu. Mit PHP
sollte das an sich kein Problem sein - dort kann man ja Connection-Handles
bei den DB-Abfragen mitgeben.

Nach ähnlichem Modell läuft eine recht fette Datenbank hier auf
vergleichsweise magerer Hardware seit Monaten zuverlässig und schnell.

Gruß,
Andreas


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive