Problem beim Abrufen von MySQL-Daten.

WBOY
Freigeben: 2016-09-03 00:14:12
Original
1118 Leute haben es durchsucht

  1. 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

  2. date stellt das Datum dar, user_id stellt die ID des Benutzers dar und count_name stellt einen bestimmten statistischen Wert dar.

  3. count_name mögliche Werte (a1,a2,a3,···,a12,b1,b2,b3,···,b12);

  4. Täglich werden Zehntausende Datensätze generiert.

  5. 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>
Nach dem Login kopieren
Nach dem Login kopieren

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:

  1. Da die Tabelle bei Paging-Statistiken keinen Primärschlüssel hat, ist das Paging schwierig zu handhaben.

  2. Aufgrund der Einschränkung, dass MySQL nur etwa 10.000 Daten gleichzeitig abrufen kann, kann es zu einem Zusammenbruch kommen.

Antwortinhalt:

  1. 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

  2. date stellt das Datum dar, user_id stellt die ID des Benutzers dar und count_name stellt einen bestimmten statistischen Wert dar.

  3. count_name mögliche Werte (a1,a2,a3,···,a12,b1,b2,b3,···,b12);

  4. Täglich werden Zehntausende Datensätze generiert.

  5. 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>
Nach dem Login kopieren
Nach dem Login kopieren

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:

  1. Da die Tabelle bei Paging-Statistiken keinen Primärschlüssel hat, ist das Paging schwierig zu handhaben.

  2. Aufgrund der Einschränkung, dass MySQL nur etwa 10.000 Daten gleichzeitig abrufen kann, kann es zu einem Zusammenbruch kommen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage