Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie gross kann eine Tabelle (sql) werden? welche Auswirkung? (https://www.delphipraxis.net/76000-wie-gross-kann-eine-tabelle-sql-werden-welche-auswirkung.html)

Karstadt 28. Aug 2006 15:43

Datenbank: mysql • Version: 4.1 • Zugriff über: mydac

Wie gross kann eine Tabelle (sql) werden? welche Auswirkung?
 
Hallo. Ich speichere pro Datensatz ein Bild 100x100 in JPEG format ab. Nun habe ich 404 Datensätzen die Tabelle ist ca. 1,4 mb Groß.

Mit Select werden nur maximal 40 Datensätze angezeigt, nun ist die Frage was würde passieren, wenn ich 10.000 Datensätze mit Bildern haben werden. Arbeitet mein Programm langsamer oder genau so "schnell" wie jetzt, da durch die Select Abfrage nur maximal 40 Datensätze "übertragen" werden?

Tubos 28. Aug 2006 15:44

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Wenn du mit deiner Abfrage nur 40 Datensätze auswählst, werden auch nur die 40 übertragen.

Angel4585 28. Aug 2006 15:45

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
ich denke er meint ob es länger dauert 40 Datensatze zu laden wenn 10.000 Datensaätze da sind, als wenn nur 100 da sind... :roll:

mkinzler 28. Aug 2006 15:46

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Für dein Programm düften sich keine Änderungen ergeben. Es ist eher die Frage wie der MySQL-Server regiert. Aber eigentlich sollten sich dann auch keine größeren Probleme ergeben.

Karstadt 28. Aug 2006 15:51

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Danke für die schnelle Antwort! ;)

alcaeus 28. Aug 2006 15:54

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Ich hab eine mySQL-Tabelle, die ca. 1507 MB an Daten enthaelt, davon gehn ca. 693 MB fuer den Index drauf, der Rest sind die Daten an sich (das ist keine Tabelle im Produktiveinsatz, nicht dass mir jetzt jemand da dummes DB-Design vorwirft, das ist mehr ein Feldversuch).
In der Tabelle stehn Log-Daten vom Apachen, die ich schon in die einzelnen Felder aufgeteilt hab.
Folgendes Query:
SQL-Code:
SELECT DISTINCT log_useragent FROM log_data ORDER BY log_useragent
braucht auf meiner Maschine (Celeron mit 1.8 GHz, 512 MB Ram) ca. 7 Minuten zum Durchlaufen, was kein Wunder ist, bei den 3.6 Millionen Datensaetzen die da drin liegen. Das Feld ist momentan noch nicht normalisiert, deswegen sind da auch so viele Daten drin. Wie gesagt, war eigentlich ein dummer Feldversuch, dessen Reste zufaellig noch rumliegen :stupid:

Ab wann du eine deutliche Verlangsamung feststellst, ist natuerlich fraglich, aber irgendwann wird die Tabelle merlich langsam, vor allem wenn du die Indizes nicht richtig erstellst.
Mein Tipp: speicher das Bild im Dateisystem, und speicher nur den Pfad dazu. Das Auslesen der Daten, und auch das Anzeigen des Bildes werden viel weniger Speicher und weniger Rechenaufwand benoetigen :)

Greetz
alcaeus

Karstadt 28. Aug 2006 16:06

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Zitat:

Mein Tipp: speicher das Bild im Dateisystem, und speicher nur den Pfad dazu. Das Auslesen der Daten, und auch das Anzeigen des Bildes werden viel weniger Speicher und weniger Rechenaufwand benoetigen
..der Kunde möchtet.. alle Bilder und dazugehörige Daten in eine Tabelle habe. (40 Datensätze)
..Die Daten später in Report anschauen / ausdrucken.. (in diesen Fall kann ich nicht alle Bilder > 2MB auf 100x100 verkleinen das kann dauen, wennd die Bilder auf dem Server liegen...)
..Fall ein bild auf der Platte verloren geht, kann man (auch wenn das bild klein ist) nachvolziehen was das für ein bild ist.


es sprechen viele Gründe dagegen, warum ich in meinen Fall das nicht machen kann. :(

mkinzler 28. Aug 2006 16:14

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Muß es MySQL sein? Andere DBMS haben weniger Probleme mit vielen DS.

Karstadt 28. Aug 2006 16:29

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
..ich habe momentan keine Probleme... wollte aber nur in voraus wissen.. aber so wie das aussieht würde es ja keine Probleme geben :) oder?

alcaeus 28. Aug 2006 20:43

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Zitat:

Zitat von mkinzler
Muß es MySQL sein? Andere DBMS haben weniger Probleme mit vielen DS.

Auch mySQL hat keine Probleme bei vielen DS. 10k Datensaetze ist weit unter dem, was mySQL schafft. Wichtig ist nur, die Queries daran anzupassen. ;)

Greetz
alcaeus

alzaimar 28. Aug 2006 22:54

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Zitat:

Zitat von alcaeus
Zitat:

Zitat von mkinzler
Muß es MySQL sein? Andere DBMS haben weniger Probleme mit vielen DS.

Auch mySQL hat keine Probleme bei vielen DS. 10k Datensaetze ist weit unter dem, was mySQL schafft. Wichtig ist nur, die Queries daran anzupassen. ;)

'Queries' muss man nicht anpassen, aber Indexe (oder Indizes, je nach sprachlicher Vorliebe). Und eventuell 'On demand fetching': Bilder werden nicht grundsätzlich geladen, sondern z.B. nur auf Aufforderung. Man sieht die normalen Daten, aber die relativ großen Bilder erst nach Button-Klick. Es wäre auch denkbar, ein Thumbnail, eine verkleinerte Version (2-10k) mit abzuspeichern, und beim Browsen zunächst die Mini-Version anzuzeigen.

Ach ja, und 10.000 Records ist wirklich 'Pille-Palle'. Sagen wir, bei 100.000.000 wird es interessant, obwohl auch das mit jedem mittelmäßgen DBMS zu handeln ist. Wichtig ist wirklich nur, das man die Spalten, nach denen man suchen will, mit einem Index versieht.

Aber eins bleibt: mySQL is nix, nimm lieber Firebird oder MSDE (MSSQL 2005 Express). Kostnix und ist schneller und sicherer. Aber das ist ein anderes Thema.

alcaeus 28. Aug 2006 23:14

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Ja, das meinte ich eigentlich - gute Index-Vergabe und auch das Auswaehlen von gewuenschten Spalten gehoeren fuer mich dazu ;)

Ob mySQL ein "gutes" DBMS ist oder nicht will ich jetzt nicht diskutieren ;)

Greetz
alcaeus

Bernhard Geyer 28. Aug 2006 23:30

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Zitat:

Zitat von alzaimar
Aber eins bleibt: mySQL is nix, nimm lieber Firebird oder MSDE (MSSQL 2005 Express). Kostnix und ist schneller und sicherer. Aber das ist ein anderes Thema.

Beweise das FireBird oder MSDE schneller oder sicherer sind?
Was ich sagen kann ist das der MS SQL-Server sich dynamischer an die DB-Größe anpasst wo man bei MySQL schon mal an den Ini-Dateien herumfummeln muss (Buffergrößen etc. um eine gute Performance bei großen DB's zu bekommen). Dafür ist es die zurückhaltenstes DB die ich kenne. Oracle schnappt sich in der Default-Installation soft allen verfügbaren speicher, MS SQL erst wenn es ein muß aber behält ihn dann und MySQL kann man schon bei der Installation angeben ob es sparsam mit Ram sein soll da der Rechner noch für was anderes gebraucht wird.

alzaimar 29. Aug 2006 08:34

Re: Wie gross kann eine Tabelle (sql) werden? welche Auswirk
 
Zitat:

Zitat von Bernhard Geyer
Beweise das FireBird oder MSDE schneller oder sicherer sind?

MySQL im schnellen Modus fahren, Daten einfügen, Stecker ziehen. Dann die "Crashrecovery" genießen. Ist wie Lotto.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz