Ich habe jetzt eine Tabelle ohne Primärschlüssel und nur einem gemeinsamen eindeutigen Schlüssel (Datum, Benutzer-ID, Zählname, )
Beispiel für einen Tabellendatensatz: Datum: 20160808 Benutzer-ID: 556 Zählname: a1
date stellt das Datum dar, user_id stellt die ID des Benutzers dar und count_name stellt einen bestimmten statistischen Wert dar.
count_name mögliche Werte (a1,a2,a3,···,a12,b1,b2,b3,···,b12);
Täglich werden Zehntausende Datensätze generiert.
Die maximale Anzahl der gleichzeitig aus der Datenbank abgerufenen Datensätze beträgt 10.000.
Ich muss jetzt 12 Werte zählen. Die MySQL-Anweisung kann wie folgt ausgedrückt werden:
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>
Durch zwölfmaliges Abrufen der Datenbank auf diese Weise kann das Ergebnis erzielt werden, die Effizienz ist jedoch nicht hoch.
Gibt es eine Möglichkeit, die gewünschten Daten auf einmal abzurufen? (Dies ist eine ältere Datenbank mit einer relativ großen Datenmenge. Eine Änderung der Datenbank ist eine letzte Überlegung!)
Ausprobierte Methoden:
Da die Tabelle bei Paging-Statistiken keinen Primärschlüssel hat, ist das Paging schwierig zu handhaben.
Aufgrund der Einschränkung, dass MySQL nur etwa 10.000 Daten gleichzeitig abrufen kann, kann es zu einem Zusammenbruch kommen.
Ich habe jetzt eine Tabelle ohne Primärschlüssel und nur einem gemeinsamen eindeutigen Schlüssel (Datum, Benutzer-ID, Zählname, )
Beispiel für einen Tabellendatensatz: Datum: 20160808 Benutzer-ID: 556 Zählname: a1
date stellt das Datum dar, user_id stellt die ID des Benutzers dar und count_name stellt einen bestimmten statistischen Wert dar.
count_name mögliche Werte (a1,a2,a3,···,a12,b1,b2,b3,···,b12);
Täglich werden Zehntausende Datensätze generiert.
Die maximale Anzahl der gleichzeitig aus der Datenbank abgerufenen Datensätze beträgt 10.000.
Ich muss jetzt 12 Werte zählen. Die MySQL-Anweisung kann wie folgt ausgedrückt werden:
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>
Durch zwölfmaliges Abrufen der Datenbank auf diese Weise kann das Ergebnis erzielt werden, die Effizienz ist jedoch nicht hoch.
Gibt es eine Möglichkeit, die gewünschten Daten auf einmal abzurufen? (Dies ist eine ältere Datenbank mit einer relativ großen Datenmenge. Eine Änderung der Datenbank ist eine letzte Überlegung!)
Ausprobierte Methoden:
Da die Tabelle bei Paging-Statistiken keinen Primärschlüssel hat, ist das Paging schwierig zu handhaben.
Aufgrund der Einschränkung, dass MySQL nur etwa 10.000 Daten gleichzeitig abrufen kann, kann es zu einem Zusammenbruch kommen.