Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 11174|Antwort: 1

php Senior Programmer Architekt Interviewfragen

[Link kopieren]
Veröffentlicht am 23.12.2016 09:10:09 | | |


Kürzlich habe ich mehrere Unternehmen nacheinander interviewt und einige wichtige Fragen aufgenommen, mich ermutigt, zu lernen und mich zu verbessern, und gleichzeitig in der Hoffnung, meinen Freunden etwas zu helfen.
Es gibt viel Inhalt, Schritt für Schritt, Lernen.
Einige werden in Vorstellungsgesprächen gefragt, andere sind Einstellungsvoraussetzungen, und manche werden von selbst hinzugefügt.

1. MySQL-bezogenes Wissen
    1. MySQL-Optimierungsmethode
            MYSQL-Optimierung gängige Methoden
            MySQL-Leistungsoptimierungsschema
  
    2. Wie man Datenbank und Tabellen aufteilt
           Referenz:
   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

   3. Wie man Dual-Machine-Hot-Standby und Lastverteilung in Mysql+ durchführt
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4. Welche Arten von Datentabellen gibt es?
       MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV usw
       MyISAM: Reif, stabil, leicht zu handhaben, schnell zu lesen. Einige Funktionen werden nicht unterstützt (Transaktionen usw.), Tabellen-Sperren.
       InnoDB: Unterstützt Transaktionen, Fremdschlüssel und Reihenschlösser. Es nimmt viel Platz ein und unterstützt keine Volltext-Indexierung.

       Schlüsselmerkmale der Myisam- und Innodb-Motoren:
       Was ist der Unterschied zwischen MySQLS Speicher-Engine MyISAM und InnoDB?

   5. Anti-SQL-Injektionsmethode
      mysql_escape_string(strip_tags($arr["$val"]));

   6. Wie man das Problem der Cross-Table-Abfrageeffizienz löst, nachdem MySQL eine große Tabelle in mehrere Tabellen aufgeteilt hat

[php] Plain Copy anzeigen
Sehen Sie sich Codeabschnitte an, die von meinen Codeabschnitten auf CODE abgeleitet sind

    /**
    * Funktionsname: post_check()  
    * Funktionsfunktion: Verarbeitet die eingereichten Änderungen  
    * Parameter: $post: Der einzureichende Inhalt  
    * Rückgabewert: $post: Gibt gefilterte Inhalte zurück  
    */  
    Funktion post_check($post){  
    wenn(!get_magic_quotes_gpc()){// Bestimmen Sie, ob die magic_quotes_gpc offen ist   
    $post = addierte Schrägstriche($post); Führen Sie magic_quotes_gpc Filterung der eingereichten Daten durch, ohne sie zu öffnen   
    }  
    $post = str_replace("_","\_", $post); Filtere '_' raus  
    $post = str_replace("%","\%", $post); '%' herausfiltern  
    $post = nl2br($post); Hier kommt die Umwandlung ins Spiel   
    $post = htmlspecialchars($post); HTML-Markup-Konvertierung   
    $post zurückkehren;  
    }  

   7. Indexanwendung
         Wann sollte man Indexierung in Betracht ziehen
         Welche Situationen sind für die Indexierung nicht geeignet?
         Wie man beurteilt, ob eine Aussage einen Index verwendet
        Häufige Szenarien, in denen keine Indizes verwendet werden:
                Wie '%.....'
                Implizite Umwandlung von Datentypen
                oder Schlüsselwörter plus andere Bedingungen
       Vollständiger Textindex:
                Kann nur für MYIsAM-Tabellen verwendet werden, die auf Spalten des Typs CHAR, VARCHAR, TEXT erstellt werden.
      

   8. Wie optimiert man MySQL für große Tabellen (zig Millionen)?
        Referenz http://www.zhihu.com/question/19719997

   9. Langsames Abfrageproblem von MySQL
  Tatsächlich ist es eine relativ einfache Methode, langsame Abfrageprotokolle zu analysieren; wenn du die Logs nicht sehen willst, kannst du Werkzeuge verwenden, um sie abzuschließen.

Zum Beispiel mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter usw. fühlen sich an, als bräuchte man viel Erfahrung, um eines zu analysieren, und das ist Zeitverschwendung.

10. Bezüglich der Vor- und Nachteile von User-Login-Status-, Cookie-, Datenbank- oder Memcache-http://www.dewen.org/q/11504/

Bezüglich des Login-Status des Nutzers, der Vor- und Nachteile von session%2Ccookie, Datenbank oder memcache

  11. Extremfälle werden in Transaktionen behandelt
  12. SQL Sprache in 4 Kategorien unterteilt ist, bitte listen Sie sie auf
        DDL – ERSCHAFFEN, FALLEN, VERÄNDERN
        DML--EINFÜGEN, AKTUALISIEREN, LÖSCHEN
        DQL-SELECT
        DCL – GEWÄHREN, WIDERRUFEN, VERPFLICHTEN, ZURÜCKROLLEN
        

2. PHP Grundlagen

      Sitzung

        Verschiedene Möglichkeiten und Unterschiede zwischen der Verbindung von PHP zu MySQL-Datenbanken
    MySQL: Prozessorientiert
    MySQLI: Objektorientiert
    PDO: Hohe Portabilität
    Bitte beachten Sie: PHP Basic Series: Drei von PHP verwendete APIs zur Verbindung mit MySQL-Datenbanken

3. PHP Fortgeschritten

    Verwendung von langen und kurzen Verbindungen

    Sockel

    Fragen der Zahlungssicherheit

    Objektorientiert
    Drei Hauptmerkmale: Kapselung, Vererbung und Polymorphismus (Methodenumschreibung).
    Abstrakte Klasse: abstrakt, mindestens eine Methode ist eine abstrakte Methode, die nicht instanziiert werden kann und eine gemeinsame Schnittstelle für die Unterklasse definiert.
    Interface: Interface, löse das Einzelvererbungsproblem von PHP, alle Methoden sind abstrakte Methoden des öffentlichen Zugangs, du kannst keine Variablen deklarieren, nur Konstanten.
    Erbe eine Klasse während der Implementierung mehrerer Schnittstellen
    Klasse A erweitert B implementiert Schnittfläche 1, Schnittstelle 2..., Schnittstelle n() {
          Implementierung von Methoden in allen Schnittstellen
    }
    Analyse der Ursachen für Leistungsunterschiede zwischen LAMP- und LNMP-Website-Architekturen
    Leistungsanalyse interpretierter und kompilierter Sprachen, Beispiele.

4. Regelmäßigkeit

      E-Mail-, HTML-, JS- usw. Übereinstimmung

5. Entwicklungsstiftung

          Prozess- und Thread-Definitionen, Unterscheidungen und Verbindungen.
           Der Stand des Prozesses: laufen, bereit, warten

6. Nosql-Datenbank
       Memcached, Redis, Mongodb differenzierte Verbindungen
       3 Szenen sind völlig unterschiedliche Dinge. 1.memcached: Wenn ein einzelner Schlüsselwert im Speicher gechnappt wird, gibt es keinen Ersatz für Objekt-Caching und verteilten Cache; 2. Redis: Es handelt sich um eine Sammlung von Algorithmen und Datenstrukturen, deren schneller Datenaufbau das größte Merkmal ist und die Datenpersistenz unterstützt; 3. MongoDB ist eine BSON-Struktur zwischen RDB und NoSQL, die lockerer und flexibler ist, aber keine Transaktionen unterstützt und nur als unwichtiger Datenspeicher verwendet wird.
     Kann ich MongoDB oder Redis als Alternative zu Memchad verwenden?

7. Häufig verwendete Linux-Befehle
      Zum Beispiel weiche Links

8. Architekturbezogen

           Stresstest bevor das Projekt live geht, die Anzahl der Nebenzeiten, die von einem einzelnen Server unterstützt werden, und die Anzahl der PVs.

           Angemessene Zuweisung von Serverressourcen

             CPU:Apache
                   In einer Umgebung mit hoher Last beanspruchen zu viele Lese- und Schreibvorgänge auf Festplatten-IO definitiv viele Ressourcen, und die CPU beansprucht zwangsläufig zu viel CPU.
             Speicher: Speicherbank, Datenbanksoftware
               
             Festplatte: Dateien

           Web2.0-Architekturauswahl

              MongoDB+Redis oder MySQL+Memcached ist eine bessere Kombination, und NOSQL wird für einfache Logik verwendet

           Die Hauptarchitektur der Website ist derzeit sehr beliebt
    LAMP、LNMP、LLMP
    Es gibt nun auch eine LNAMP-Architektur im Netzwerk, das heißt, sie vereint die Vorteile von nginx und Apache, indem Apache PHP lädt, nginx ist für das Parsen anderer Webanfragen verantwortlich und verwendet das Rewrite-Modul von nginx, aber der Apache-Port ist nicht für die Öffentlichkeit zugänglich, und viele Apache-Module können Ressourcen reduzieren, ohne zu laden.





Vorhergehend:Windows PowerShell, um die IP des Angreifers zu finden
Nächster:C# identifiziert den Standort des QR-Codes auf dem Bildschirm
Veröffentlicht am 23.12.2016 21:53:52 |
Du zerstörst alles.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com