WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- ::: MySQL - interne Indizierung :::

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » ::: MySQL - interne Indizierung ::: - 22 Dez 2024 Antworten
im Forum für Webhosting Homepage gefunden:
::: MySQL - interne Indizierung :::
bbastix
Pixelschubser
Threadstarter




Beiträge: 19

Wie sind die Datensätze in MySQL sortiert? Chronologisch? Und: ändert sich die Reihenfolge unter bestimmten umständen? Und: Kann ich auf die Reihenfolge Einfluss nehmen (ausser via cut and paste)?

Hintergrund:
Eine Tabelle, die die Struktur der Seite verwaltet:
id | p_id | name | ....

Jetzt lese ich alle Menupunkte eines Verzeichnisses sortiert aus (also SELECT * FROM ... WHERE p_id = 15). Bislang sortiere ich dann via ORDER BY id ASC. Das frisst aber unnötig Ressourcen und ich möchte die Indizierung über ID und P_ID gerne durch SEITE und PARENT_SEITE ersetzen. Dann allerdings könnte ich die einzelnen Datensätze ja nur alphabetisch sortieren

Meine Idee:
Da die Datensätze intern ja ohnehin indiziert sind benutze ich das doch (wenn es geht).

Basti

---
...

  Profil   E-Mail   Editieren   Zitieren
m3rlin
Quasselstrippe




Beiträge: 264

tausend bunte Frage-Zeichen

Cut and Paste in einer Datenbank? Was? Wie?

MySQL -Tabellen kannst Du einmalig nach Spalten sortieren lassen. Schau mal im phpMyAdmin, da gibts sogar irgendwo nen entsprechenden Button.

Ansonsten, was soll denn an einem einfachen SELECT-Statement unnötig Ressourcen fressen und was meinst Du mit "Indizierung über ID und P_ID durch SEITE und PARENT_SEITE ersetzen"?


---
Webspace Preisvergleich Server Preisvergleich

  Profil   Editieren   Zitieren
bbastix
Pixelschubser
Threadstarter




Beiträge: 19

...tausend bunte Antworten:
Cut and Paste meint: Datensätze auslesen, zwischenspeichern, wieder reinschreiben. Wenn ich einfach nur ein UPDATE mache, dann bleibt der Datensatz ja an der Position in der Tabelle.
Ein SELECT ist nicht ressourcenfressend, jedoch ein ORDER BY! Da muss ja jeder Datensatz mit anderen verglichen werden und sortiert werden. Bei großen Datenbanken ist das eine unnötige Belastung, wenn es auch anders ginge, aber das weiß ich eben nicht, ob ich mich auf die interne Indizierung so verlassen kann, da ich nicht weiß, wie diese funktioniert.

Deine Frage zu ID und Parent_ID:
Ich erkläre es mal ganz von vorne:
Mit ID und Parent_ID strukturiere ich meine Datensätze, ähnlich, wie es in einem Dateimanagement-System Verzeichnisse (oder Ordner bei Win) und einfache Dateien gibt:
Jeder Datensatz hat eine ID und hat in der Parent_ID die ID des direkt übergeortneten Datensatzes, der dann eben ein Verzeichnis ist. Nun ist es aber für mich ziemlich unübersichtlich mit diesen ID's zu arbeiten, da über mein CMS mehrere Domains angeschlossen sind mit unteschiedlichen Seitenstrukturtabellen. D.h. ein Forum-Modul würde von der einen Domain aus mit der ID=20 angesrochen werden, von der anderen mit ID=5. Deshalb und aus anderen Gründen existiert zu jeder ID auch ein eindeutiger Name (im Beispiel: forum). Nun existiert also eine Seitenstrukturtabelle:
1: 
2: 
3: 
4: 
5: 
6: 
7:
| id | p_id |    name    | ...
|  1 |    0 | startseite | ...
|  2 |    1 | austausch
|  3 |    2 | forum
|  4 |    2 | online_council

Das ganze soll aber so aussehen:
1: 
2: 
3: 
4: 
5: 
6: 
7:
|      name      | p_name | ...
|   startseite   | NULL 
|   austausch    | startseite 
|      forum     | austausch 
| online_council | austausch

comprendes?
Nun müssen halt aber z.B. forum und online-council in einer bestimmten Reihenfolge erscheinen, so dass im Menu nachher (das besteht aus Registerkartenreitern) also entweder [ forum ] [ online_council ] oder eben in umgekehrter Reihenfolge erscheint. Hier kann ich nicht mehr mit ORDER BY arbeiten (alphabetisch solls ja nicht sortiert sein) und ich möchte aber auch keine Neue Objekteigenschaft einführen (ORDER BY reihenfolge). Wenn ich jezt aber den Datensatz 'forum' lösche und neu anlege, dann liegt er in der internen MySQL-Indizierung am Ende der Tabelle, also hinter 'online_council' und genau das würde ich gerne nutzen!

Ich hoffe, das jetzt klar ist, was ich meine.

Basti

---
...

  Profil   E-Mail   Editieren   Zitieren
m3rlin
Quasselstrippe




Beiträge: 264

SELECT Statements sind auch mit ORDER BY keine Resourcen-Fresser. Wer hat Dir denn den Floh ins Ohr gesetzt

Wenn Du der entsprechenden Spalte einen Index verpasst, beschleunigts Du die Anfrage eventuell etwas. Allerdings hat das den Nachteil, dass die Datenbank nachher etwas mehr Speicher verbraucht und UPDATE, INSERT und DELETE Statements auf dieser Tabelle länger brauchen als vorher, weil halt der entsprechende Index auch noch aktualsiert werden muss.

Zum Ersetzen:

Schau Dir mal das Thema Join/Verbund an, vielleicht ist es das was Du suchts.

Übrigens wenn Du dich mit JOINS beschäftigts, stößt Du langsam in Gebiete vor in denen echte Ressourcen-Fresser zu Hause sind





---
Webspace Preisvergleich Server Preisvergleich

  Profil   Editieren   Zitieren
bbastix
Pixelschubser
Threadstarter




Beiträge: 19

...keine Ahnung, wer mir den Floh ins Ohr gesetzt hat. Hab auch nich keinen Test gemacht, klingt für mich aber völlig logisch.

Abgesehen davon geht es mir ja auch um die Veränderung meiner DB-Struktur, da ich dadurch einiges an Übersicht gewinnen würde.

Basti

---
...

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » ::: MySQL - interne Indizierung :::

Aktuelle Beiträge zur Hilfe im Forum für Homepage - ::: MySQL - interne Indizierung ::: im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8143552    Heute : 46     Gestern : 729     Online : 211     22.12.2024    2:58      0 Besucher in den letzten 60 Sekunden        
Nach oben