suchen

Heim  >  Fragen und Antworten  >  Hauptteil

node.js - NodeJS Multithreading, wie das Problem der Datenkonsistenz gelöst werden kann

Stellen Sie sich eine solche Szene vor. Beispielsweise enthält eine Testtabelle Felder

count:0
name:'abc'

Wenn der Benutzer eine Bearbeitungsoberfläche öffnet, werden die aus der Datenbank gelesenen Daten

count:3
name:'abc'

Dann änderte er seinen Namen und es wurde so

count:3
name:'efg'

Zu diesem Zeitpunkt lesen und schreiben andere Programme diese Testtabelle mit hoher Geschwindigkeit. Da der Benutzer die Daten nicht in der Datentabelle gespeichert hat, sind die von anderen Programmen gespeicherten Daten

count:40
name:'abc'

Ändern Sie das Zählfeld kontinuierlich auf 41, 42, 43. Zu diesem Zeitpunkt hat der Benutzer die Änderung abgeschlossen und die Daten in der Datenbank gespeichert. Die endgültigen zu diesem Zeitpunkt gespeicherten Daten sind

count:3
name:'efg'

Dann entsteht das Problem. . . Es liegt ein Problem mit den Zählfelddaten vor.

Wie kann dieses Problem gelöst werden?

1. Trennen Sie entweder das Zählfeld in eine andere Tabelle und verknüpfen Sie dann die beiden Tabellen, ohne sich gegenseitig zu stören. Wenn Daten auf diese Weise gelesen werden, müssen jedoch zwei Tabellen gelesen werden, was etwas mühsam ist.

2. Wenn Benutzer Daten speichern, aktualisieren Sie nur die erforderlichen Felder. Beispielsweise liest das Zählfeld das alte aus der Datenbank. Wenn die Datentabelle jedoch Dutzende Felder enthält, ist das Verfahren etwas umständlich.

Wie hast du es gelöst?

ringa_leeringa_lee2760 Tage vor586

Antworte allen(1)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-06-05 11:14:48

    典型的事务问题。

    你用的什么数据库?学过事务吗?去学学你使用的数据库如何支持事务的。

    简单说就是:给数据加锁,使同一时间只能有一个client做读写操作,其它client都得等着。

    Antwort
    0
  • StornierenAntwort