PythonQ 240-8XX Manual de usuario Pagina 500

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 499
Kapitel 7: MySQL-Sprachreferenz 479
Anfragen, die unterschiedliche Datenbanken, Protokollversionen oder unterschiedliche vor-
gabem¨aßige Zeichens¨atze benutzen, werden als unterschiedliche Anfragen angesehen und
separat gecachet.
Der Cache funktioniert auch bei Anfragen der Art SELECT CALC_ROWS ... und SELECT
FOUND_ROWS() ..., weil die Anzahl der gefundenen Zeilen ebenfalls im Cache gespeichert
wird.
Wenn sich eine Tabelle ¨andert (INSERT, UPDATE, DELETE, TRUNCATE, ALTER oder
DROP TABLE|DATABASE), werden alle gecacheten Anfragen, die diese Tabelle benutzten
(m¨oglicherweise ¨uber eine MRG_MyISAM-Tabelle!) ung¨ultig und werden aus dem Cache
entfernt.
Momentan werden alle InnoDB-Tabellen beim COMMIT als f¨ur den Cache ung¨ultig gekennze-
ichnet. In Zukunft wird das ge¨andert, so dass nur Tabellen, die in der Transaktion ge¨andert
wurden, f¨ur die entsprechenden Cache-Eintr¨age als ung¨ultig markiert werden.
Eine Anfrage kann nicht gecachet werden, wenn sie eine der folgenden Funktionen enth¨alt:
Funktion Funktion Funktion Funktion
Benutzerdefinierte
Funktionen
CONNECTION_ID FOUND_ROWS GET_LOCK
RELEASE_LOCK LOAD_FILE MASTER_POS_WAIT NOW
SYSDATE CURRENT_
TIMESTAMP
CURDATE CURRENT_DATE
CURTIME CURRENT_TIME DATABASE ENCRYPT (mit einem
Parameter)
LAST_INSERT_ID RAND UNIX_TIMESTAMP
(ohne Parameter)
USER
BENCHMARK
Eine Anfrage kann ebenfalls nicht gecachet werden, wenn sie Benutzer-Variablen enth¨alt
oder wenn sie in der Form SELECT ... IN SHARE MODE oder der Form SELECT * FROM
AUTOINCREMENT_FIELD IS NULL (um als ODBC-Workaround die letzte eingef¨ugte ID
abzurufen) ist.
FOUND ROWS() gibt jedoch den korrekten Werte zur¨uck, selbst wenn eine vorhergehende
Anfrage aus dem Cache geholt wurde.
Anfragen, die keinerlei Tabellen benutzen oder solche, bei denen der Benutzer eine Spal-
tenberechtigung f¨ur irgend eine der beteiligten Tabellen hat, werden nicht gecachet.
Bevor eine Anfrage aus dem Anfragen-Cache geholt wird, pr¨uft MySQL, ob der Benutzer
die SELECT-Berechtigung f¨ur alle beteiligten Datenbanken und Tabellen hat. Wenn nicht,
wird das Cache-Ergebnis nicht benutzt.
7.9.2 Anfragen-Cache-Konfiguration
Aufgrund des Anfragen-Caches gibt es ein paar neue MySQL Systemvariablen f¨ur mysqld, die
in einer Konfigurationsdatei oder auf der Kommandozeile beim Starten von mysqld gesetzt
werden onnen:
query_cache_limit Keine Ergebnisse cachen, die gr¨oßer als dieser Wert sind (Vorgabe
1 MB).
query_cache_size Der zugewiesene Arbeitsspeicher, um Ergebnisse aus alten Anfra-
gen zu speichern. Wenn er 0 ist, ist der Anfragen-Cache a/jointfilesconvert/293675/bgeschaltet (Vorgabe).
Vista de pagina 499
1 2 ... 495 496 497 498 499 500 501 502 503 504 505 ... 767 768

Comentarios a estos manuales

Sin comentarios