phpbar.de logo

Mailinglisten-Archive

Re: Frage zum Aufbau einer table (ressourcen, performance)
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Frage zum Aufbau einer table (ressourcen, performance)



na dann fange wir mal an...


>Hallo Liste,
> ich habe eine Frage zum moeglichst ressourcenschonenden Aufbau
> einer Tabelle, dh moeglichst schnellen Zugriff. Es handelt sich
> dabei Newsseiten verschiedener Websites, die von einem PHP-script
> aus der MySQL-Datenbank generiert werden. Also ca 10.000 queries
> am Tag. Fuer Expertenhinweise waere ich dankbar.


aehm ich hoffe du fragst die betreiber vorher nach dem einverstaendinis.
kann wirklich boease ins auge gehen. alles schriftlich verstaendlicherweise.

>
> Nun habe ich noch wenig Erfahrung speziell im Erstellen von table
> strukturen, die momentane Table sieht wie folgt aus:
>
> CREATE TABLE dienewstabelle (
>    id int(11) DEFAULT '0' NOT NULL AUTO_INCREMENT,
>    text blob DEFAULT '' NOT NULL,
>    more blob DEFAULT '' NOT NULL,
>    datestamp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
>    name varchar(100) DEFAULT '' NOT NULL,
>    email varchar(100) DEFAULT '' NOT NULL,
>    forumurl varchar (100),
>    hits int(11),
>    beitragstyp char(20) NOT NULL,
>    site char(20) NOT NULL,
>    thementyp char(20) NOT NULL,
>    visibility char(20) NOT NULL,
>    headline varchar(100) DEFAULT '' NOT NULL,
>    PRIMARY KEY (id),
>    KEY datestamp (datestamp),
>    KEY beitragstyp (beitragstyp),
>    KEY site (site),
>    KEY thementyp (thementyp),
>    KEY visibility (visibility)
> );


ich wuerde zusaetzlich beitragstyp und datestamp in ein key machen
(performance)
 (hab ich grad von monty gelernt ;-)

>
> Die News-Seiten werden jeweils nach einem QUERY_STRING generiert:
> zB newsysadmin.php3?name=Heraklit&visibility=N&orderby=datestamp
> Daraus bastelt das PHP-script dann eine korrespondierende SQL-query:
> SELECT * FROM teamplaydenews WHERE name=Heraklit AND visibility=N ORDER
>BY
> datestamp
>
> Weitere queries die so auch auftauchen koennten im taeglichen
> Betrieb:
> newsysadmin.php3?beitragstyp=kommentar&orderby=datestamp
> newsysadmin.php3?beitragstyp=news&site=halflifede&orderby=datestamp
>
>
>newsysadmin.php3?beitragstyp=news&site=halflifede&thementyp=mods&orderby=da
testamp
> newsysadmin.php3?name=jo&$beitragstyp=news&orderby=datestamp&limit=30
>
> Eine weitere Frage: wenn ich ORDER BY datestamp verwende, dann werden
> die alten News zuerst ausgegeben. Wie kann ich erreichen, dass mir
> fuer meine Newsseiten jeweils die aufsteigender reihenfolge sortiert
> werden? ASC? DESC? Kann MySQL nach Datum ausgeben?  Wie muss ich meine


DESC geht mit datestamp ganz hervorragend.



> Letzlich noch die Frage, ob ich ueberhaupt eine einzige Tabelle
> verwenden sollte. Stellen schaetzungsweise 10000 Eintraege nach
> einem Jahr ein Performanceproblem bei der Abfrage der Tabelle dar?


siehe mein speedproblem -> drop table dann mit load infile einlesen
(ca. 400% schneller - bei mir !)


>
> --Heraklit


mariano


---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive