(PS: Ich wurde gefoltert, als ich zu einem Vorstellungsgespräch in ein großes Unternehmen ging. Ich ging zurück und suchte nach Informationen und stellte fest, dass es in diesem Bereich sehr wenig gab, und ich war immer noch verwirrt.)
Zum Beispiel:
1. Hohe Parallelität und großer Datenverkehr,
2. Trennung und erneute Verbindung
3. Die Datenmenge ist zu groß und die Anfrage läuft ab
4. Gepushter Text, Benutzersynchronisierung und andere Probleme.
Ich hoffe, erfahrene Experten können Ihnen mitteilen, wie sie bei der Entwicklung mit geringem Benutzeraufkommen häufig Gruben graben und auf Minen treten und wie man große Verkehrsproben erstellt Wegbeschreibungen und empfohlene Bücher in diesem Bereich.
(Ich bin ein Back-End-Dreckskerl mit 1 Jahr Erfahrung, vielen Dank für Ihre Aufmerksamkeit und Antworten) vorbei!
(PS: Ich wurde gefoltert, als ich zu einem Vorstellungsgespräch in ein großes Unternehmen ging. Ich ging zurück und suchte nach Informationen und stellte fest, dass es in diesem Bereich sehr wenig gab, und ich war immer noch verwirrt.)
Zum Beispiel:
1. Hohe Parallelität und großer Datenverkehr,
2. Trennung und erneute Verbindung
3. Die Datenmenge ist zu groß und die Anfrage läuft ab
4. Gepushter Text, Benutzersynchronisierung und andere Probleme.
Ich hoffe, erfahrene Experten können Ihnen mitteilen, wie sie bei der Entwicklung mit geringem Benutzeraufkommen häufig Gruben graben und auf Minen treten und wie man große Verkehrsproben erstellt Wegbeschreibungen und empfohlene Bücher in diesem Bereich.
(Ich bin ein Back-End-Dreckskerl mit 1 Jahr Erfahrung, vielen Dank für Ihre Aufmerksamkeit und Antworten) vorbei!
Heutzutage stellen nur wenige von ihnen diese anspruchsvollen Fragen. Was sie wissen, ist nur Theorie. Wenn Sie kein technischer Direktor sind, werde ich Ihnen keine Gelegenheit geben, sie umzusetzen 9 dieser Fragen, die den Interviewern gestellt wurden, sind einfach anmaßend.
Lassen Sie mich darüber sprechen, was ich verwendet habe
1 Zunächst einmal hängen die zig Millionen Benutzer davon ab, um welche Art von Projekt es sich handelt. Gewöhnliche Projekte haben nicht viele 1.000.000-Benutzer, da dies bei gewöhnlichen Projekten nicht der Fall ist überhaupt Benutzeraktivität haben
2 Die Definition von hoher Parallelität: die Anzahl der in derselben Sekunde angeforderten IP-Anfragen. Nach meinem persönlichen Verständnis bezieht sich hohe Parallelität auf zwei Aspekte: Der eine ist Ihr Service und der andere die Geschäftslogik Ihres Programms.
Dienste: Apache, Nginx Fastcgi
Programmierung: Ich persönlich denke, dass dies der entscheidende Punkt ist, da der Flaschenhals von Webanwendungen in der Datenbank liegt. Ihre Geschäftslogik fügt die Datenbank hinzu, löscht sie, prüft sie und ändert sie. Wenn das aktuelle Anforderungsvolumen eine bestimmte Basis erreicht, ist es daher wahrscheinlich, dass der von der Datenbank belegte Speicher zunimmt und sogar ein Deadlock Ihrer Tabelle oder ein Absturz der Datenbank verursacht wird.
Um dieses Problem zu lösen: 1. Zuerst müssen Sie am Eingang Ihres Programms ein Protokoll schreiben, um die Adresse und Parameter jeder Anfrage aufzuzeichnen. 2 Analysieren Sie anhand Ihrer Protokolle, welche Anfragen eine zu hohe Zugriffsfrequenz haben (es ist unmöglich, dass jede Anfrage auf eine hohe Zugriffsfrequenz zugreifen kann). 3 Finden Sie die Adressen mit zu hohen Zugriffsanfragen heraus, analysieren Sie die entsprechende Geschäftslogik, optimieren Sie den Code und die SQL-Anweisungen und Machen Sie es gemäß den funktionalen Anforderungen. Richtiges Caching
Datenbankaspekt: 1. Basierend auf den obigen Analyseergebnissen werden Tabellen erhalten, die häufige Operationen erfordern. Bei den meisten davon handelt es sich um Datenbankabfrageoperationen. (Im Allgemeinen umfassen Tabellen mit häufigen Vorgängen: Benutzerinformationstabelle. Allgemeine Tabellen mit großen Datenmengen: Finanzdatensatztabelle, Benutzerprotokolltabelle.) Teilen Sie die Tabellen dann entsprechend der Geschäftslogik auf. 1. Platzieren Sie die Felder, die häufig in der Benutzertabelle abgefragt werden, in einer Tabelle. 2. Platzieren Sie die statistischen Benutzerinformationen und ungewöhnlichen Daten in einer oder mehreren anderen Tabellen. 3 Bei Tabellen mit großen Datenmengen können Sie Zeiträume verwenden, um Tabellen zu unterteilen, z. B. eine Finanzdatensatztabelle und eine Benutzerprotokolltabelle für einen Monat oder eine Woche. Eine andere Möglichkeit besteht darin, Tabellen nach Geschäftslogik zu unterteilen, z. B. eine Tabelle für aktive Benutzerinformationen und eine weitere Tabelle ist entsprechend der Benutzer-ID in Tabellen unterteilt, z. B. eine Tabelle mit der ersten Ziffer der Benutzer-ID ist 1, eine Tabelle mit 2 usw., um 10 Tabellen zu erstellen.
Dann verwenden Sie die Lese-/Schreibtrennung, um eine Master-Slave-Bibliothek einzurichten. In einer detaillierteren Richtung gibt es noch viel mehr zu sagen. Aber für allgemeine Unternehmen besteht eigentlich kein Bedarf. Wenn Sie eine so große Anzahl von Benutzern haben, bedeutet dies, dass das Unternehmen Geld hat, viele Dinge durch Hardware verbessert werden können und es Vollzeit einstellen kann Personal zu hohen Preisen. Sie führen gerade ein Vorstellungsgespräch mit PHP. Ich habe keine Protokolltabelle und habe nichts gegen den täglichen Anstieg von 10 Millionen unternommen.
3 Lassen Sie sich von dieser Art von Leuten nicht einschüchtern, gehen Sie einfach zu Baidu und merken Sie sich die Antworten, und merken Sie sie sich für Sie, wenn Sie sie das nächste Mal treffen.
Vielleicht stellt ihr Unternehmen keine Mitarbeiter ein, aber sie sind gerade auf dieses Problem gestoßen und wollten kein Geld ausgeben, also haben sie daraus eine Frage im Vorstellungsgespräch gemacht. . .