[TASK] Improve FAL performance 16/18316/4
authorDmitry Dulepov <dmitry@typo3.org>
Sat, 16 Feb 2013 17:57:33 +0000 (19:57 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 13 Mar 2013 21:20:33 +0000 (22:20 +0100)
FAL performance in BE and FE can be improved by using certain database
indexes. One set of indexes improves performance in BE by adding a
"deleted" column, which is used by List module. Without this column
in the 'pid' index, List module will do a full scan, which is much
slower. Another set of indexes improves performance when getting files
from storage.

Change-Id: I1f8577453ed917db95d680ca74fefc4691ba53b0
Resolves: #45532
Releases: 6.1
Reviewed-on: https://review.typo3.org/18316
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/core/ext_tables.sql

index a41feef..b845ddd 100644 (file)
@@ -271,7 +271,7 @@ CREATE TABLE sys_file_storage (
        processingfolder tinytext,
 
        PRIMARY KEY (uid),
-       KEY parent (pid)
+       KEY parent (pid,deleted)
 );
 
 #
@@ -316,8 +316,10 @@ CREATE TABLE sys_file (
        alternative text,
 
        PRIMARY KEY (uid),
-       KEY parent (pid),
-       KEY t3ver_oid (t3ver_oid,t3ver_wsid)
+       KEY parent (pid,deleted),
+       KEY t3ver_oid (t3ver_oid,t3ver_wsid),
+       KEY sel01 (storage,identifier(20)),
+       KEY sha1 (sha1(40))
 );
 
 #
@@ -392,9 +394,7 @@ CREATE TABLE sys_file_reference (
        downloadname tinytext,
 
        PRIMARY KEY (uid),
-       KEY uid_local (uid_local),
-       KEY uid_foreign (uid_foreign),
-       KEY parent (pid)
+       KEY parent (pid,deleted)
 );
 
 
@@ -438,7 +438,7 @@ CREATE TABLE sys_file_collection (
        folder text NOT NULL,
 
        PRIMARY KEY (uid),
-       KEY parent (pid),
+       KEY parent (pid,deleted),
        KEY t3ver_oid (t3ver_oid,t3ver_wsid)
 );
 
@@ -477,7 +477,7 @@ CREATE TABLE sys_collection (
        items int(11) DEFAULT '0' NOT NULL,
 
        PRIMARY KEY (uid),
-       KEY parent (pid),
+       KEY parent (pid,deleted),
        KEY t3ver_oid (t3ver_oid,t3ver_wsid)
 );
 
@@ -657,4 +657,4 @@ CREATE TABLE sys_category_record_mm (
 
        KEY uid_local_foreign (uid_local,uid_foreign),
        KEY uid_foreign_tablenames (uid_foreign,tablenames)
-);
\ No newline at end of file
+);