[TYPO3-german] typoscript db query performance issue
Dr. Dieter Porth
typo3 at mobger.de
Sat Dec 17 19:27:33 CET 2016
Hi Alex,
Ja, es war noch etwas früh heute morgen. 'where' hat doch ein stdWrap.
Also kannst du mit Registern arbeiten.
lib.Machwas = COA
lib.machwas{
10 = LOAD_REGISTER
10 {
deinTitle.cObject < temp.newsTitle
deinTime.cObject = TEXT
deinTime.data = date:U
}
20 = CONTENT
20 {
..
where.stdWrap.dataWrap = (datetime >= '{REGISTER:deinTime}' AND deleted
= '0' AND hidden = '0' AND title = '{REGISTER:deinTitle}')
..}
30 = RESTORE_REGISTER
So ungefähr sollte die Struktur aussehen.
Mit besten Grüßen
Dieter
Am 17.12.2016 um 14:08 schrieb Alex B.:
> Vielen Dank für die Hinweise/Hilfe.
> Das Problem liegt leider nicht in der Syntax, diese ist ok, nur etwas
> veraltet - "andWhere" ist deprecated wie ich nun gesehen habe. Ich
> habe daher auf "where" umgestellt.
>
> Die Performance-Probleme werden offenbar von der Anzahl der MySQL-Rows
> verursacht. Wenn ich "max" z.B. auf 10 stelle, ist die Anfrage wieder
> schnell. Allerdings befinden sich in dem record-storage mit der
> verwendeten pid (168) nur ca. 200 News-Items -- das sollte für einen
> normalen db-query doch eigentlich sehr wenig sein?
>
> Mein Ziel ist es News-Items auszulesen deren Titel der selbe ist wie
> der Titel der aktuell geöffneten News. Bisher hatte ich alle News die
> einen anderen Titel haben später per jquery aus dem dom entfernt -- um
> die Datenbankabfrage nun zu verbessern, möchte ich nun den Titel des
> aktuell geöffneten News-Item per typoscript auslesen und in meine
> Datenbankabfrage (where) einbinden.
> Das bekomme ich leider nicht hin. Hier mein aktueller Code:
>
> # den titel des aktuell geoeffneten news-items auslesen
> temp.newsTitle = RECORDS
> temp.newsTitle {
> dontCheckPid = 1
> tables = tx_news_domain_model_news
> source.data = GP:tx_news_pi1|news
> source.intval = 1
> conf.tx_news_domain_model_news = TEXT
> conf.tx_news_domain_model_news {
> field = title
> # htmlSpecialChars = 1
> }
> wrap = |
> }
> # for testing, das gibt den titel der aktuell geoeffenten news korrekt
> aus
> # page.800 < temp.newsTitle
> # lib.dbquery, diese lib wird dann in ein powermail formular eingebunden
> lib.dbquery = CONTENT
> lib.dbquery {
> table = tx_news_domain_model_news
> select { pidInList = 168
> selectFields = title,datetime
> recursive = 1
> orderBy = datetime ASC
> where = (datetime >= '###newsdate###' AND deleted = '0' AND hidden
> = '0' AND title = '###newstitle###')
> markers {
> newsdate.data = date:U
> # newstitle.data < temp.newsTitle ## does not work
> # newstitle < temp.newsTitle ## does not work
> # newstitle.data = temp.newsTitle ## does not work
> # newstitle = temp.newsTitle ## does not work
> }
> # max = 20
> }
> renderObj = COA
> renderObj {
> 10 = COA
> 10 {
> 10 = TEXT
> 10.data = field:title
> 10.noTrimWrap = ||, |
> 20 = TEXT
> 20.data = field:datetime
> 20.strftime = %d.%m.%Y
> 30 = TEXT
> 30.value = [\n]
> }
> }
> }
> [end]
>
> Vielen Dank für die Hilfe,
> Alex
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list