PythonQ 240-8XX Manual de usuario Pagina 368

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 367
Kapitel 6: MySQL-Optimierung 347
Ein Thread wartet bei etwas wie Platte voll. In diesem Fall warten alle anderen
Threads, die auf die problemverursachende Tabelle zugreifen wollen, bis mehr Speicher
verf¨ugbar gemacht wurde.
ogliche osungen dieses Problems sind:
Versuchen Sie, SELECT-Statements schneller ablaufen zu lassen. Hierf¨ur m¨ussen Sie
eventuell Zusammenfassungstabellen erzeugen.
Starten Sie mysqld mit --low-priority-updates. Das gibt allen Statements, die
eine Tabelle aktualisieren andern), geringere Priorit¨at als einem SELECT-Statement.
Im vorstehenden Szenario w¨urde das SELECT-Statement vor dem INSERT-Statement
ausgef¨uhrt werden.
Sie onnen auch einem bestimmten INSERT-, UPDATE- oder DELETE-Statement mit dem
LOW_PRIORITY-Attribut geringere Priorit¨at geben.
Starten Sie mysqld mit einem niedrigen Wert f¨ur max write lock count, um READ-
Sperren nach einer bestimmten Anzahl von WRITE-Sp erren zu erm¨oglichen.
Sie onnen festlegen, dass alle Aktualisierungen von einem bestimmten Thread
mit niedriger Priorit¨at ausgef¨uhrt werden, indem Sie den SQL-Befehl SET
SQL_LOW_PRIORITY_UPDATES=1 benutzen. Siehe Abschnitt 6.5.6 [SET OPTION],
Seite 361.
Sie onnen mit dem HIGH_PRIORITY-Attribut festlegen, dass ein bestimmtes SELECT
sehr wichtig ist. Siehe Abschnitt 7.4.1 [SELECT], Seite 435.
Wenn Sie Probleme mit INSERT in Kombination mit SELECT haben, stellen Sie auf die
neuen MyISAM-Tabellen um, weil diese gleichzeitige SELECTs und INSERTs unterst¨utzen.
Wenn Sie haupts¨achlich INSERT- und SELECT-Statements mischen, wird das DELAYED-
Attribut f¨ur INSERT wahrscheinlich Ihre Probleme osen. Siehe Abschnitt 7.4.3
[INSERT], Seite 442.
Wenn Sie Probleme mit SELECT und DELETE haben, mag die LIMIT-Option f¨ur DELETE
helfen. Siehe Abschnitt 7.4.6 [DELETE], Seite 446.
6.4 Optimierung der Datenbank-Struktur
6.4.1 MySQL-Datenbank-Design-
¨
Uberlegungen
MySQL speichert Zeilendaten und Indexdaten in separaten Dateien. Viele (fast alle) an-
deren Datenbanken vermischen Zeilen- und Indexdaten in derselben Datei. Wir glauben,
dass die Wahl, die MySQL getroffen hat, f¨ur einen sehr weiten Bereich moderner Systeme
besser ist.
Eine weitere oglichkeit, Zeilendaten zu speichern, besteht darin, die Information f¨ur jede
Spalten in einem separaten Bereich zu halten (Beispiele sind SDBM und Focus). Das
verursacht Performance-Einbussen f¨ur jede Anfrage, die auf mehr als eine Spalte zugreift.
Weil das so schnell schlechter wird, wenn auf mehr als eine Spalte zugegriffen wird, glauben
wir, dass dieses Modell f¨ur Mehrzweck-Datenbanken nicht gut ist.
Der aufigere Fall ist, dass Index und Daten zusammen gespeichert sind (wie bei Oracle,
Sybase usw.). In diesem Fall befindet sich die Zeileninformation auf der Leaf-Page des
Vista de pagina 367
1 2 ... 363 364 365 366 367 368 369 370 371 372 373 ... 767 768

Comentarios a estos manuales

Sin comentarios