Mailinglisten-Archive |
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
php::bar PHP Wiki - Listenarchive