Heim > Backend-Entwicklung > PHP-Tutorial > Probleme beim Design der Tabellenstruktur

Probleme beim Design der Tabellenstruktur

WBOY
Freigeben: 2016-08-04 09:20:33
Original
1049 Leute haben es durchsucht

Ein Tischstrukturdesign, ich weiß nicht, wie ich das machen soll, bitte fragen Sie:

Es gibt unten ein Modul mit 6 verschiedenen Tabellentypen, die alle 5 bis 6 Felder gemeinsam haben. (Jede Tabelle enthält mehr als 30 Millionen Daten)

1. Erstellen Sie eine neue Mastertabelle, trennen Sie diese 5 Felder und fügen Sie eine Protokolltyp-ID hinzu, um 6 Tabellen (dritte Normalform) zu betreiben und gemeinsame Abfragen durchzuführen.

<code>优点:可以方便更新共同字段、统计数据
缺点:数据多了,联合查询是个问题
</code>
Nach dem Login kopieren
Nach dem Login kopieren

2. 6 separate Tische

<code>优点:(查询单表不用联合、插入也方便一些)
缺点:统计和更新共同字段状态、以及做报表什么之类的都需要 一次性去操作6个表
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Welche Methode sollte besser sein oder gibt es andere Vorschläge?

Vielen Dank!

Antwortinhalt:

Ein Tischstrukturdesign, ich weiß nicht, wie ich das machen soll, bitte fragen Sie:

Es gibt unten ein Modul mit 6 verschiedenen Tabellentypen, die alle 5 bis 6 Felder gemeinsam haben. (Jede Tabelle enthält mehr als 30 Millionen Daten)

1. Erstellen Sie eine neue Mastertabelle, trennen Sie diese 5 Felder und fügen Sie eine Protokolltyp-ID hinzu, um 6 Tabellen (dritte Normalform) zu betreiben und gemeinsame Abfragen durchzuführen.

<code>优点:可以方便更新共同字段、统计数据
缺点:数据多了,联合查询是个问题
</code>
Nach dem Login kopieren
Nach dem Login kopieren

2. 6 separate Tische

<code>优点:(查询单表不用联合、插入也方便一些)
缺点:统计和更新共同字段状态、以及做报表什么之类的都需要 一次性去操作6个表
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Welche Methode sollte besser sein oder gibt es andere Vorschläge?

Vielen Dank!

Wenn es so viele Mengen gibt,
Bauen Sie es in eine Tabelle ein und übertragen Sie die Daten gleichzeitig an es. Lesen Sie es.
Aktualisieren Sie die Operationstabelle und synchronisieren Sie gleichzeitig die aktualisierten Daten . zu es

Die Frage ist nicht ganz klar.

  1. Welche Beziehung besteht zwischen den sechs Tabellen? Warum erfordert die statistische Aktualisierung gemeinsamer Felder die gleichzeitige Bedienung von 6 Tabellen?

  2. Wie sieht es jetzt aus, wie ist die Leistung und welche Art von Abfrage- und Aktualisierungsanweisungen wird es geben?

Tatsächlich können Sie erwägen, die Daten in Tabellen aufzuteilen, wenn sie 30 Millionen erreichen.

Die Aufteilung in Tabellen ist unvermeidlich, wenn die Datenmenge groß ist und die Aufteilungsmethode nicht schlecht ist. Wenn Sie die Notwendigkeit eines regelmäßigen Abrufs berücksichtigen müssen, können Sie die Bedingungen für den regelmäßigen Abruf in Betracht ziehen B. Speicheraufteilung, kann die Struktur die Statistik beschleunigen. Andere Methoden mit relativ kleinen Suchvorgängen können nur wenige Male durchsucht werden.

Angesichts der Tatsache, dass die Datenmenge im zweistelligen Millionenbereich liegt, können Sie darüber nachdenken, regelmäßig temporäre Statistiktabellen zu erstellen, um den Datenbankdruck zu verringern und die Abfragestatistiken zu beschleunigen.

Um welche Art von Szenariodaten handelt es sich? Bei der Erstellung von Geschäftsstatistiken wird empfohlen, diese in separaten Tabellen zu verarbeiten. Manchmal ist es nicht unbedingt erforderlich, das kartesische Produkt für eine große Anzahl von Tabellen durchzuführen, um das Problem zu lösen

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