WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   mysql - longblob - große files speichern ??? (http://www.wcm.at/forum/showthread.php?t=76753)

erdling 11.11.2002 18:10

mysql - longblob - große files speichern ???
 
hi,

ich versuche in den datentyp LONGBLOB, der angeblich 4,2 GB große stücke;-) aufnehmen kann, reinzuschreiben

das funktioniert bis zu dateigrößen von ca. 1 MB

darüber gibt es den folgenden fehler
---------
Error Type: mysqldb.error
Error Value: (2006, 'MySQL server has gone away')
---------

ich schreib das in python

es könnte also theoretisch auch eine beschränkung des mySQL-adapters für python sein ???

hat das schon wer gemacht ?
mit welchen ergebnissen ?

any ideas ???

<tia>

fritz
(-:fs)

käptn 11.11.2002 18:25

Ich tipp auf max_allowed_packet (Konfiguration des MySQL-Servers).

~

_m3 11.11.2002 18:53

Zitat:

* The maximum size of a BLOB or TEXT object is determined by its type, but the largest value you can actually transmit between the client and server is determined by the amount of available memory and the size of the communications buffers. You can change the message buffer size, but you must do so on both the server and client ends. See section 13.2.4 Tuning Server Parameters.
Code:

shell> mysqld --help

This command produces a list of all mysqld options and configurable variables. The output includes the default values and looks something like this:

Possible variables for option --set-variable (-O) are:
back_log              current value: 5
bdb_cache_size        current value: 1048540
binlog_cache_size    current_value: 32768
connect_timeout      current value: 5
delayed_insert_timeout  current value: 300
delayed_insert_limit  current value: 100
delayed_queue_size    current value: 1000
flush_time            current value: 0
interactive_timeout  current value: 28800
join_buffer_size      current value: 131072
key_buffer_size      current value: 1048540
lower_case_table_names  current value: 0
long_query_time      current value: 10
max_allowed_packet    current value: 1048576
max_binlog_cache_size current_value: 4294967295
max_connections      current value: 100
max_connect_errors    current value: 10
max_delayed_threads  current value: 20
max_heap_table_size  current value: 16777216
max_join_size        current value: 4294967295
max_sort_length      current value: 1024
max_tmp_tables        current value: 32
max_write_lock_count  current value: 4294967295
myisam_sort_buffer_size  current value: 8388608
net_buffer_length    current value: 16384
net_retry_count      current value: 10
net_read_timeout      current value: 30
net_write_timeout    current value: 60
query_buffer_size    current value: 0
record_buffer        current value: 131072
slow_launch_time      current value: 2
sort_buffer          current value: 2097116
table_cache          current value: 64
thread_concurrency    current value: 10
tmp_table_size        current value: 1048576
thread_stack          current value: 131072
wait_timeout          current value: 28800

If there is a mysqld server currently running, you can see what values it actually is using for the variables by executing this command:

shell> mysqladmin variables


erdling 11.11.2002 20:34

jo burschn - grandiose tipps

habe 'max_allowed_packet' hinaufgeschraubt auf 50 M in der my.cnf

jetzt kann ich immerhin 16 MB reinschieben
20 MB geht nicht mehr

also die größenberechnungsmethode ist mir nicht ganz geheuer (wird da der netzverkehr mitgezählt?)

aber ich weiß jetzt die richtige schraube an der ich drehen muß

thx - thx - thx


fritz
(-:fs)

erdling 12.11.2002 11:53

über die 16 MB größe komm ich jetzt nicht mehr drüber

habe noch einstellungen (max_heap_table_size war auf 16 MB) erhöht - ohne erfolg?

hat noch jemand eine idee ?

danke

fritz
(-:fs)

-------------------

hier meine variablen

back_log current value: 50
binlog_cache_size current value: 32768
connect_timeout current value: 5
delayed_insert_timeout current value: 300
delayed_insert_limit current value: 100
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 52424704
long_query_time current value: 10
lower_case_table_names current value: 0
max_allowed_packet current value: 52427776
max_binlog_cache_size current value: 4294967295
max_binlog_size current value: 1073741824
max_connections current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 52427776
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_user_connections current value: 0
max_write_lock_count current value: 4294967295
myisam_max_extra_sort_file_size current value: 256
myisam_max_sort_file_size current value: 2047
myisam_sort_buffer_size current value: 8388608
net_buffer_length current value: 7168
net_retry_count current value: 10
net_read_timeout current value: 30
net_write_timeout current value: 60
open_files_limit current value: 0
query_buffer_size current value: 0
record_buffer current value: 131072
record_rnd_buffer current value: 0
slave_net_timeout current value: 3600
slow_launch_time current value: 2
sort_buffer current value: 524280
table_cache current value: 64
thread_concurrency current value: 10
thread_cache_size current value: 0
tmp_table_size current value: 33554432
thread_stack current value: 65536
wait_timeout current value: 28800

käptn 12.11.2002 13:14

heap_tables sin Tabellen, welche nur im Speicher und nicht auf der Platte vorhanden sind.

Und was ist, wenn du die Daten häppchenweise per update rüberschiebst?

~

erdling 12.11.2002 14:16

>>> Und was ist, wenn du die Daten häppchenweise per update rüberschiebst?

hmmm, die idee gefällt mir gut -
ist ohnehin nicht so geschickt riesige dateien übers netz zu schicken

könnte natürlich eine große datei teilen

dann brauch ich in SQL eine art von 'append' um das wieder zusammenzusetzen

gibts sowas, oder kann 'update' das ???

das 'update' schaut meines wissens immer ungefähr so aus
---
UPDATE <table> SET <column> = <expression>
---
beim 'expression' müßte ich jetzt sowas wie 'alter wert' APPEND 'neuer wert' einsetzen können ...

umpf - geht das in SQL (ist nicht meine muttersprache;-) ???

fritz
(-:fs)

käptn 12.11.2002 14:41

UPDATE bin_table SET bin_col = bin_col + ... WHERE id = ...

Mal eine Frage am Rande: Was schaufelst du da eingentlich MBweise in die DB?

~

erdling 12.11.2002 15:24

danke fürs SQL - kanns erst am abend ausprobieren ...

---------------------------------

>>> Mal eine Frage am Rande: Was schaufelst du da eingentlich MBweise in die DB?

einfach alles (dumme antwort)

also mir sind die diversesten archivierungen auf den geist gegangen
(edv)bücher, schallplatten, notizen über dieses und jenes, ...

deshalb hab ich mir eine anwendung gebaut

----
frontend mittels browser (HTML, python-scripts, Zope = webserver)
middleware in python
hinten mySQL
-------

und zwar mappe ich objekte (=eine sammlung von attributen - also eigentlich alles) auf eine relationale DB

und dort kommt jetzt alles rein

das können eben bücher, schallplatten, eingescannte dokumente aus zeitschriften (die können schon groß werden), bilder, vielleicht auch die ISO-files von linux distributionen sein

bei den heutigen festplattengrößen ist das kein problem

für einen neuen object-typ brauche ich nur ein neues eingabeformular (ein anderes kopieren, attribute anpassen, SAVE aufrufen, FERTIG) und selbiges für ein suchformular

keine neuen tabellen-struktuen, m:n relationen, SQL statements (das mit den files, die bei objekten hängen, wird hoffentlich der letzte clou)

und ich brauche mich nur mehr um _EINE_ datenbank zu kümmern (sichern, etc.), es ist auch übers netz und auf jeder maschine mit browser nutzbar


fritz
(-:fs)

Sloter 12.11.2002 16:03

Bei Daten wie Bilder oder Isofiles schreibt nur einen Link in die DB und nicht das ganze File.

Die MySql Datenbank wird ja sonst irre langsam.

Sloter


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag