Indexierung auf eine Tabelle

fink-x

Mitglied
Hallo,

Hintergrund:
ich habe eine Shopsystem welches mit einer MySQL Datenbank läuft. In dieser DB sind schon etliche Tabellen erstellt unter anderen auch eine Tabelle für Produkte (products) und eine für Bestellungen (orders) diese haben wiederum eine viel zahl an Spalten. Ich habe ein Script was mir jetzt die Top-Produkte aus der DB herauszieht, dieses ist in php geschrieben und geht über 3 separate Abfragen. Diese wollte ich nun vermeiden und alles in eine Abfrage stecken, nur leider läuft diese ziemlich lang (2 - 8 Sekunden). Nun habe ich in der Testumgebung mal der Spalte in der "orders" Tabelle einen Index gegeben welche quasi der Schlüssel der Produkte ist

orders(Tabelle) -> product_id(Spalte in der orders Tabelle)

und der hab ich jetzt den Index gegeben. Nun meine eigentlich Frage, wenn ich solch ein Index vergebe, kann sich dies negativ auf meine Datenbank oder das Shopsystem auswirken?

Hier auch noch die entsprechende Abfrage dazu, ich bin kein Datenbankprofi und man kann die Abfrage sicherlich noch verbessern, wenn dies so ist würde ich mich über Tipps freuen.

PHP:
   Select DISTINCT
   Count(op.products_id) As productsidcounts,
   p.products_date_added,
   p.products_image,
   p.products_price,
   bsu.url_text,
   pd.products_name,
   pd.products_short_description


   From
   products p
   Inner Join products_description pd On p.products_id = pd.products_id
   
   Inner Join bluegate_seo_url bsu On p.products_id = bsu.products_id

   Inner Join orders_products op on op.products_id = p.products_id
   
   Left Join orders o On (op.orders_id = o.orders_id)


   WHERE
   p.products_quantity > 0 And
   p.products_status > 0 And
   o.date_purchased Between '2010-07-03' And '2010-08-02'

   Group By p.products_id Order By productsidcounts Desc

Edit:
Als Info zusätzlich, das Shopsystem ist ein xtCommerce
 
Zuletzt bearbeitet:
Zurück