MariaDB Frage  [GELÖST]

Locked
klicksor
Posts: 13
Joined: Wed 2. Mar 2022, 10:23

MariaDB Frage

Post by klicksor »

Hallo,

ich habe eine Vermutung, aber bin mir nicht so ganz sicher.
Ich habe Keyhelp 21.3 (Build 2344) am laufen mit MariaDB 10.5.12.

Kann es sein, dass hier standardmäßig was gecached wird?
D.h. wenn ich was in die DB schreibe (über PHP) dann dauert es ne Weile bis ich es von der DB ausgelesen bekomme.

Kann man das irgendwo deaktivieren?


Gruß
User avatar
Jolinar
Community Moderator
Posts: 3560
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: MariaDB Frage

Post by Jolinar »

klicksor wrote: Mon 21. Mar 2022, 15:37 Kann es sein, dass hier standardmäßig was gecached wird?
AFAIK eigentlich nicht, aber ich arbeite eher auf OS-Ebene als auf Anwendungsebene. Vllt. kann ein Dev Genaueres dazu sagen.

klicksor wrote: Mon 21. Mar 2022, 15:37 wenn ich was in die DB schreibe (über PHP)
Kannst du das eventuell etwas näher erläutern?
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: MariaDB Frage

Post by 24unix »

klicksor wrote: Mon 21. Mar 2022, 15:37 D.h. wenn ich was in die DB schreibe (über PHP) dann dauert es ne Weile bis ich es von der DB ausgelesen bekomme.
Nein, das passiert sofort.

Hast Du ein konkretes Beispiel?
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
tab-kh
Posts: 450
Joined: Thu 22. Apr 2021, 23:06

Re: MariaDB Frage

Post by tab-kh »

Schreibst und liest du parallel oder ist das Schreiben abgeschlossen, bevor du versuchst das Geschriebene zu lesen? Bis dahin sagen wir mal so, solange du an den Defaulteinstellungen nichts verstellt hast (z.B. autocommit auf 0 gestellt, Default ist 1) und das Schreiben fertig war bevor du anfängst zu lesen, dürfte das eigentlich nicht passieren. Wenn autocommit allerdings nicht aktiviert ist, musst du jede Transaktion mit COMMIT explizit abschliessen. Passiert das nicht und die Verbindung wird vorher beendet, wird ein Rollback der kompletten Transaktion ausgeführt, so dass deine eventuell geschriebenen Daten nicht mehr in der Datenbank stehen. Das könnte man als eine Art Cache ansehen, der erst durch das COMMIT geflusht wird.
klicksor
Posts: 13
Joined: Wed 2. Mar 2022, 10:23

Re: MariaDB Frage

Post by klicksor »

hi,

danke für die Antworten!

Wenn ich in die DB schreibe, dann ist es erst nach einer Zeit in der DB wirklich ersichtlich. Auch das Auslesen über PHP liefert mir das Ergebnis nicht sofort. Bekomme es erst nach einer Zeit und dann seh ich es auch erst in der DB.

Hab mal etwas nachgelesen.

Wenn Ich z.B. das hier ausführe, dann liefert er mir "YES" zurück. Somit muss ein Caching an sein.

Code: Select all

SHOW VARIABLES LIKE 'have_query_cache';
Wenn ich dann die Cache Size auf "0" stelle

Code: Select all

SET GLOBAL query_cache_size = 0;
Funktioniert alles einwandfrei. D.h. gleich nach dem Schreiben gibt er mir auch die Daten aus. Jedoch halt nur bis zu dem Zeitpunkt, wo ich MariaDB neu starte oder Keyhelp es neu startet.

Ich benötige das Caching nicht und in meinem Fall ist es auch ziemlich schlecht tatsächlich, da viele User am System arbeiten und dadurch doppelte Kundennummern z.B. entstehen können.

Wenn ich es jedoch in der "50_server" direkt reinschreibe übernimmt er es mir nicht als Standard.


Gruß
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: MariaDB Frage  [GELÖST]

Post by Alexander »

Hallo,
klicksor wrote: Tue 22. Mar 2022, 07:34 Wenn Ich z.B. das hier ausführe, dann liefert er mir "YES" zurück. Somit muss ein Caching an sein.

Code: Select all

SHOW VARIABLES LIKE 'have_query_cache';
Nur zum richtig-stellen: Das sagt laut Dokumentation (https://mariadb.com/kb/en/query-cache/) nichts darüber aus, ob es aktiv ist oder nicht, es sagt nur aus, ob es theoretisch verfügbar wäre:
Unless MariaDB has been specifically built without the query cache, the query cache will always be available, although inactive. The have_query_cache server variable will show whether the query cache is available.

Um das von dir gewünschte zu ermitteln solltest du eher das folgende abfragen:
SHOW VARIABLES LIKE 'query_cache_type';
(https://mariadb.com/kb/en/server-system ... cache_type)


In der 90-tuning.cnf stehen übrigens ein paar Werte zum Cache, dein Eintrag in der 50-server wird durch den 90-tuning überschrieben.

Code: Select all

# Query Cache Configuration
query_cache_limit       = 64M
query_cache_size        = 128M
query_cache_type        = 1
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
l_fish
Posts: 144
Joined: Tue 15. Aug 2017, 11:49

Re: MariaDB Frage

Post by l_fish »

Hei

Der Query Cache kann hier meiner Meinung nach eigentlich nicht Ursache des Problems sein, siehe

https://mariadb.com/kb/en/query-cache/# ... ache-works
Each time changes are made to the data in a table, all affected results in the query cache are cleared. It is not possible to retrieve stale data from the query cache.
D.h. ein INSERT, UPDATE, ... leert den Cache für die betreffenden Queries auf der Tabelle, so dass ein erneutes SELECT nicht aus dem query cache bedient wird, sondern die Daten frisch holt. Alles andere würde einen query cache auch komplett unbrauchbar machen in einem Datenbank-Kontext.


Grüße,
Lars
klicksor
Posts: 13
Joined: Wed 2. Mar 2022, 10:23

Re: MariaDB Frage

Post by klicksor »

Hi,
Der Query Cache kann hier meiner Meinung nach eigentlich nicht Ursache des Problems sein, siehe

https://mariadb.com/kb/en/query-cache/# ... ache-works

Each time changes are made to the data in a table, all affected results in the query cache are cleared. It is not possible to retrieve stale data from the query cache.

D.h. ein INSERT, UPDATE, ... leert den Cache für die betreffenden Queries auf der Tabelle, so dass ein erneutes SELECT nicht aus dem query cache bedient wird, sondern die Daten frisch holt. Alles andere würde einen query cache auch komplett unbrauchbar machen in einem Datenbank-Kontext.
die Seite hab ich auch gelesen, aber leider macht er das bei mir offensichtlich nicht.
Nur eben wenn ich den Wert in der DB den query_cache_size auf 0 setze.
Um das von dir gewünschte zu ermitteln solltest du eher das folgende abfragen:

SHOW VARIABLES LIKE 'query_cache_type';

(https://mariadb.com/kb/en/server-system ... cache_type)
Das habe ich tatsächlich auch. Aber danke für die 90-tuning.cnf Info! Dann werde ich es da mal direkt deaktivieren um zu schauen, ob das Bestand hat, wenn ein Keyhelp Update kommt. Denke aber schon.

Danke!


Gruß
Thomas
Locked