SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.07.2013, 15:26:48
MacPac MacPac ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 45
Beiträge: 6
MySQL Einstellungen

Hallo,

ich habe eine Frage in Bezug für die Einstellung vieler Datenbank abfragen.

Ein paar Fakten:
Für eine Gruppe von etwa 8.000 - 10.000 Personen habe ich eine MySQL Datenbank eingereichtet auf welcher etwa 100 Datenbankabfragen pro Aufruf stattfinden.

Alle Tabellen sind optimiert, Indizien richtig gesetzt, statische Tabellen als InnoDB angelegt, dynamische Tabellen als MyIsam (diese Tabellen werden auch als Volltextsuche genutzt).

Es sind 18 Tabellen. Im Schnitt mit je 500.000 Einträgen (die grösste hat 2.400.000 Einträge jedoch nur 8 Felder davon ist eine Volltext und die anderen ENUM und INT)

Als Datenbankserver dient ein 8 Kern (3,4GHz) mit 64 GB Ram und 500 GB SSD Platte.
OS ist CentOS 6.

MEMCACHED lohnt im diesem Fall nicht, da fast alle Abfragen (80%) dynamisch sind.

MySQL sollte genutzt werden jedoch würde POSTGRESQL als Alternative zur Verfügung stehen jedoch nur wenn MySQL "versagen" sollte.

Nun zu meinen Fragen:
- Welche MySQL Einstellungen muss ich vornehmen, damit soviele User wie möglich gleichzeitig auf die Datenbank zugreifen zu können ohne der Fehlermeldung "Too many connections"?
- Reicht die Hardwareanfordung (wie oben beschrieben) aus um so etwas zu bewältigen?
- Wäre es vielleicht auch ratsam auf MariaDB umzustellen?
- Was müsste ich noch beachten?

Ich danke im vorraus für eure Hilfe.
Mit Zitat antworten
  #2  
Alt 28.07.2013, 08:03:37
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: MySQL Einstellungen

Hi,

Zitat:
etwa 100 Datenbankabfragen pro Aufruf
Pro User?

Zitat:
MEMCACHED lohnt im diesem Fall nicht
Sicher? siehe link

Zitat:
...ohne der Fehlermeldung "Too many connections"?
siehe link

Zitat:
Reicht die Hardwareanfordung (wie oben beschrieben) aus um so etwas zu bewältigen
Da ich nicht weis wie auf die DB zugegriffen wird, kann ich nix dazu sagen. Vielleicht
kannst du da infos nachliefern.
So ungefähr ist mein Arbeitspc eingerichtet *hust* OS in 29sek Betriebsbereit ;)

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #3  
Alt 28.07.2013, 11:47:09
MacPac MacPac ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 45
Beiträge: 6
AW: MySQL Einstellungen

Hi Ckaos,

erstmal vielen dank für deine Antwort.

1. Ja die Zugriffe würden pro User entstehen. (ist für eine komplexe Anwendung und ich habe mich auch schon mit anderen programmierern zusammengesetzt um die anfragen eventuell zu minimieren jedoch gibt es da kein andere möglichkeiten)

2. da wo memcached sich lohnt (auf queries wo kaum aktualisierungen stattfinden) habe ich dies ntürlich eingesetzt. jedoch ändern sich die inhalte der anderen tabellen in sehr schneller zeit, wo die lifetime des memchache maximal 20sec wären und dann neu gesetzt werden müsste.
Aber jetzt wo ich drüber nachdenke, könnten auch die memcaches mit 20sec lifetime performance-unterstützend sein.

3. hab mir den link "too many connections" durchgelesen und habs bei mir angepasst.

4. der zugriff erfolgt wie folgt:
user->web->loadbalancer->appserver->datenbankserver
die verbindung erfolgt über php (als modul) mit "pconnect"

Hatte einen kleinen Test gemacht:
5 gleichzeitige Verbindung->pro Verbindung einen Aufruf (97 Abfragen)-> ladezeit im schnitt 0.1232 sek
Mit Zitat antworten
  #4  
Alt 29.07.2013, 16:17:20
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: MySQL Einstellungen

Zitat:
Zitat von MacPac Beitrag anzeigen
Hatte einen kleinen Test gemacht:
5 gleichzeitige Verbindung->pro Verbindung einen Aufruf (97 Abfragen)-> ladezeit im schnitt 0.1232 sek
Huch? Lese ich das richtig: ein Aufruf beinhaltet 97 SQL Abfragen und dauert 0.1 sec?

Such Dir ein anderes Hobby...
Mit Zitat antworten
  #5  
Alt 30.07.2013, 17:23:26
MacPac MacPac ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 45
Beiträge: 6
AW: MySQL Einstellungen

wieso huch und neues Hobby???
Mit Zitat antworten
  #6  
Alt 31.07.2013, 22:36:36
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: MySQL Einstellungen

Hi,

Zitat:
etwa 100 Datenbankabfragen pro Aufruf
+
Zitat:
Es sind 18 Tabellen.
= Hä

Vielleicht solltest du dir weitere Teamhilfe besorgen um das ganze objektiver
zu betrachten.

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 01.08.2013, 12:22:29
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: MySQL Einstellungen

Zitat:
Zitat von MacPac Beitrag anzeigen
wieso huch und ...
Weil das, was Du fabrizierst, ne Zumutung ist.
1. zuviele SQL Abfragen. Holst Du jeden Buchstaben einzeln ab?
2. viel zu hohe Scriptlaufzeit. Unter Hochlast (100 quasi gleichzeitige User) darf die Laufzeit max. 10ms betragen, weil länger als ne Sekunde (100 * 10ms) warte ich nicht, bis der Browser den Kram anzeigt.
Zitat:
neues Hobby???
Willst Du mir etwa einreden, Du kriegst auch noch Geld für den Kram?
Mit Zitat antworten
  #8  
Alt 01.08.2013, 12:41:38
MacPac MacPac ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 45
Beiträge: 6
AW: MySQL Einstellungen

ich sehe schon... ich hab mich da wohl etwas unverständlich ausgedrückt.

es sind insgesamt 6 Queries pro aufruf. (Tabellen sind in den Queries per Joins zusammengefasst). Jedoch finden innerhalb pro Queries 8 Vergleiche (unterschiedlicher Tabellen) statt (macht 48) von 2 verschiedenen Bedingungen.

Also um es auf den Punkt zu bringen. Reell sind es 6 Zugriffe aber mit einigen Vergleichen innerhalb der Selects und Joins = daher 100 Abfragen
Mit Zitat antworten
  #9  
Alt 01.08.2013, 13:18:14
MacPac MacPac ist offline
Anfänger
 
Registriert seit: Jul 2013
Alter: 45
Beiträge: 6
AW: MySQL Einstellungen

Und sollte jetzt die Frage kommen ob man nicht die Queries optimieren kann, sage ich schon mal im vorraus nein.

Es sind 15 verschiedene Gruppen (jede Gruppe MUSS ihre eigene Tabelle haben, da diese von anderen Applikationen genutzt werden welche in Levels eingeteilt sind) und die Gruppen können nicht zusammengefasst werden. Das war auch der Grund warum ich voher geschrieben hatte, dass ich mich schon mit anderen zusammengesetzt habe um eine Möglichkeit zu finden dies zu optimieren.
Vergleiche ich nun eine Bedingung mit den 15 Tabellen habe ich schon mal 15 Abfragen und es wird nicht nur eine Bedingung überprüpft. Soviel zum Thema 100 Abfragen.

Noch eine kleine persönliche Meinung:
Die Umgangsweise ist meist ein Abbild der Persönlichkeit.
@Meikel: Du weisst gar nicht, mit wem du es zu tun hast, masst dir aber an zu sagen, dass ich mir ein neues Hobby suchen soll. Und nein, ich versuche dir nicht einzureden, dass ich dafür Geld bekomme, denn ich bekomme es. Ich bin kein kleines Kind was nicht weiss was es macht. Was ich wissen möchte hab ich oben beschrieben.

P.S. Ich weiss, dass ich mich hätte besser ausdrücken sollen um solche Sachen zu vermeiden. War mein Fehler und ich hoffe, ich hab die Situation jetzt besser erklärt
Mit Zitat antworten
  #10  
Alt 01.08.2013, 13:19:15
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: MySQL Einstellungen

Zitat:
Zitat von MacPac Beitrag anzeigen
ich sehe schon... ich hab mich da wohl etwas unverständlich ausgedrückt.
Das tust Du immer noch:
Zitat:
es sind insgesamt 6 Queries pro aufruf. ... daher 100 Abfragen
6 SQL Queries sind 6 SQL Abfragen. Eine Abfrage ist (simpel ausgedrückt) der Kram zwischen dem ersten "SELECT " und dem ";".

Wenn diese 6 SQL Abfragen + ein wenig PHP ca. 110ms verbraten, dann ist das viel zu viel.

Überarbeite Dein Datenbankdesign so, daß 6 SQL Abfragen in 10ms gegessen sind.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Brauche Hilfe Partygirl MySQLi/PDO/(MySQL) 10 01.03.2011 08:18:11
MySQL 4 "große" Abfragen coder90 MySQLi/PDO/(MySQL) 0 06.09.2008 13:45:08
Mysql startet nicht oberonal MySQLi/PDO/(MySQL) 3 24.11.2006 09:41:31
MySQL Page Script. Problem. dtone MySQLi/PDO/(MySQL) 8 15.10.2006 14:58:06
MySQL - ORDER BY RAND() und PHP MacMarc PHP Grundlagen 15 05.12.2002 22:23:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:58:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt