Remove unneeded join onto apk which was causing performance problems.
This join resulted in one row for each apk in the result set (before doing a GROUP BY), instead of one row for each apk. That is a large difference in number of rows and resulted in much more work for sqlite. Turns out this join wasn't required.
This commit is contained in:
		
							parent
							
								
									80259d00ba
								
							
						
					
					
						commit
						620affa239
					
				@ -217,7 +217,6 @@ public class AppProvider extends FDroidProvider {
 | 
				
			|||||||
        protected String getRequiredTables() {
 | 
					        protected String getRequiredTables() {
 | 
				
			||||||
            final String pkg  = PackageTable.NAME;
 | 
					            final String pkg  = PackageTable.NAME;
 | 
				
			||||||
            final String app  = getTableName();
 | 
					            final String app  = getTableName();
 | 
				
			||||||
            final String apk  = getApkTableName();
 | 
					 | 
				
			||||||
            final String repo = RepoTable.NAME;
 | 
					            final String repo = RepoTable.NAME;
 | 
				
			||||||
            final String cat  = CategoryTable.NAME;
 | 
					            final String cat  = CategoryTable.NAME;
 | 
				
			||||||
            final String catJoin = getCatJoinTableName();
 | 
					            final String catJoin = getCatJoinTableName();
 | 
				
			||||||
@ -226,8 +225,7 @@ public class AppProvider extends FDroidProvider {
 | 
				
			|||||||
                " JOIN " + app + " ON (" + app + "." + Cols.PACKAGE_ID + " = " + pkg + "." + PackageTable.Cols.ROW_ID + ") " +
 | 
					                " JOIN " + app + " ON (" + app + "." + Cols.PACKAGE_ID + " = " + pkg + "." + PackageTable.Cols.ROW_ID + ") " +
 | 
				
			||||||
                " JOIN " + repo + " ON (" + app + "." + Cols.REPO_ID + " = " + repo + "." + RepoTable.Cols._ID + ") " +
 | 
					                " JOIN " + repo + " ON (" + app + "." + Cols.REPO_ID + " = " + repo + "." + RepoTable.Cols._ID + ") " +
 | 
				
			||||||
                " LEFT JOIN " + catJoin + " ON (" + app + "." + Cols.ROW_ID + " = " + catJoin + "." + CatJoinTable.Cols.APP_METADATA_ID + ") " +
 | 
					                " LEFT JOIN " + catJoin + " ON (" + app + "." + Cols.ROW_ID + " = " + catJoin + "." + CatJoinTable.Cols.APP_METADATA_ID + ") " +
 | 
				
			||||||
                " LEFT JOIN " + cat + " ON (" + cat + "." + CategoryTable.Cols.ROW_ID + " = " + catJoin + "." + CatJoinTable.Cols.CATEGORY_ID + ") " +
 | 
					                " LEFT JOIN " + cat + " ON (" + cat + "." + CategoryTable.Cols.ROW_ID + " = " + catJoin + "." + CatJoinTable.Cols.CATEGORY_ID + ") ";
 | 
				
			||||||
                " LEFT JOIN " + apk + " ON (" + apk + "." + ApkTable.Cols.APP_ID + " = " + app + "." + Cols.ROW_ID + ") ";
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @Override
 | 
					        @Override
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user