Schrift
[thread]3661[/thread]

DBI::connect_cached

Leser: 1


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
Froschpopo
 2006-02-24 15:08
#34045 #34045
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Da ich mit mod_perl2 arbeite und es scheinbar nicht möglich ist, die verbindung global zu gestalten, habe ich nun ein paar fragen zu DBI::connect_cached.

1. wird die gesamte Datenbank gecached oder die einzelnen Suchabfragen? Wenn letzteres Zutrifft, hat das ja gar keinen Sinn, da jeder User ja sowieso etwas anderes abfragt.

2. Genügt es, wenn ich die Verbindung "cache"? Also connect_cached() mache? Oder muss ich die einzelnen Abfragen/Inserts/Updates auch cachen?

3. wie verhält sich der Cache von DBI im Fall eines Stromausfalls? Ist dann alles weg oder wie?
Ich habe keinen Hardware/Software-RAID... nur den simplen von Linux der aber Stromausfälle nicht vorsieht...
nepos
 2006-02-24 15:56
#34046 #34046
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
zu 3. wuerd ich einfach mal sagen, dann hast du Pech gehabt. Der Datenbank sollte das normal weniger tun, die hat ihre Recovery-Verfahren, aber die Anweisungen, die noch gecached waren duerften weg sein.
Froschpopo
 2006-02-24 15:58
#34047 #34047
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
und wann cached DBI? wie hoch ist der Intervall?
pq
 2006-02-24 16:59
#34048 #34048
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
mach einfach connect_cached statt connect. alles andere regelt DBI für dich.
alles, was intern passiert, ist, dass das $dbh objekt nicht jedesmal neu erstellt
wird, sondern ein schon vorhandenes aus dem pool genommen wird. vereinfacht
gesagt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Relais
 2006-02-24 17:08
#34049 #34049
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Froschpopo,24.02.2006, 14:58]und wann cached DBI? wie hoch ist der Intervall?[/quote]
Was steht denn dazu in der Doku?
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
Relais
 2006-02-24 17:10
#34050 #34050
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was erträumst Du Dir eigentlich? Mir sieht es etwas so aus, als geht es gar nicht um einen Cache, sondern um ein Transaktionsmanagement außerhalb der Datenbank, etwa auf dem Webserver?

Vielleicht beschreibst Du einfach mal ausführlicher, was Du Dir vorgenommen hast.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
Froschpopo
 2006-02-24 17:27
#34051 #34051
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ok: Ich arbeite mit mod_perl2.
Um nicht in jeder funktion einen verbindungsaufbau zur datenbank machen zu müssen, möchte ich diesen als einzigsten global machen.

use vars [$dbh];
$dbh = ...

nun ist mir wichtig, dass nicht meine ganzen inserts/updates verschwinden, wenn mein server mal plötzlich nen stromausfall hat.
Ist doch ziemlich simpel, oder?
GwenDragon
 2006-02-24 18:08
#34052 #34052
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Was hindert doch denn daran, ein FLUSH TABLES auf die Tabellen zu machen? Dann werden die auch zurück geschrieben.

Einerseits willst du cachen, anderseits höchste Datensicherheit. ich glaube, das geht nicht.

Wenn du verhindern willst, dass immer wider auf dine Datenbank zugegriffen wird, dann solltest du wirklich Apache::DBI nutzen.\n\n

<!--EDIT|GwenDragon|1140797470-->
Froschpopo
 2006-02-24 18:29
#34053 #34053
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich wills doch gar nicht verhindern!! Ich will lediglich mit mod_perl2 arbeiten und ptk meint, ich soll dann die datenbank cachen.\n\n

<!--EDIT|Froschpopo|1140798610-->
GwenDragon
 2006-02-24 18:56
#34054 #34054
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Quote
DBI::connect_cached.
Die Doku von DBI sagt dazu:
Quote
connect_cached is like connect, except that the database handle returned is also stored in a hash associated with the given parameters. If another call is made to connect_cached with the same parameter values, then the corresponding cached $dbh will be returned if it is still valid. The cached database handle is replaced with a new connection if it has been disconnected or if the ping method fails.

Es werde nur die Handles gecached, keine Inhalte der DB.
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2006-02-24 15:08.