Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 11174|Répondre: 1

Questions d’entretien pour architecte programmeur senior PHP

[Copié le lien]
Publié sur 23/12/2016 09:10:09 | | |


Récemment, j’ai interviewé plusieurs entreprises une après l’autre, et j’ai enregistré quelques questions importantes, me poussant à étudier et à m’améliorer, tout en espérant apporter un peu d’aide à mes amis.
Il y a beaucoup de contenu, petit à petit, un apprentissage étape par étape.
Certains sont interrogés en entretien, d’autres sont des exigences de recrutement, et certains sont ajoutés séparément.

1. Connaissances liées à MySQL
    1. Méthode d’optimisation MySQL
            Méthodes courantes d’optimisation MYSQL
            Schéma d’optimisation des performances MySQL
  
    2. Comment diviser la base de données et les tables
           Référence :
   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

   3. Comment faire un standby à chaud double machine et un équilibrage de charge dans Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4. Quels sont les types de tables de données ?
       MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, etc
       Mon ISAM : Mature, stable, facile à gérer, rapide à lire. Certaines fonctionnalités ne sont pas prises en charge (transactions, etc.), les verrous au niveau de la table.
       InnoDB : Prend en charge les transactions, les clés étrangères et les serrures de lignes. Il prend beaucoup de place et ne supporte pas l’indexation en texte intégral.

       Caractéristiques clés des moteurs myisam et Innodb :
       Quelle est la différence entre le moteur de stockage MySQL MyISAM et InnoDB ?

   5. Méthode d’injection anti-SQL
      mysql_escape_string(strip_tags($arr[« $val»]) ;

   6. Comment résoudre le problème d’efficacité des requêtes en tableaux croisés après que mysql ait divisé une grande table en plusieurs tables

[php] voir la copie simple
Voir les tranches de code dérivées de mes tranches de code sur CODE

    /**
    * Nom de la fonction : post_check()  
    * Fonction fonction : Traite les modifications soumises  
    * Paramètre : $post : Le contenu à soumettre  
    * Valeur de retour : $post : Retourne le contenu filtré  
    */  
    fonction post_check($post){  
    if( !get_magic_quotes_gpc()){// Déterminer si le magic_quotes_gpc est ouvert   
    $post = barrières obliquées ($post) ; Effectuez magic_quotes_gpc filtrage des données soumises sans ouvrir   
    }  
    $post = str_replace(« _ »,"\_ », $post) ; Filtrez '_'  
    $post = str_replace(« % »,"\ % », $post) ; Filtrez le ' %'  
    $post = nl2br($post) ; Entrée en scène de conversion   
    $post = htmlspecialchars($post) ; Conversion de balisage HTML   
    retour $post ;  
    }  

   7. Application de l’index
         Quand envisager l’indexation
         Quelles situations ne conviennent pas à l’indexation
         Comment juger si une affirmation utilise un indice
        Scénarios fréquents où les indices ne sont pas utilisés :
                Comme « % ..... »
                Conversion implicite des types de données
                ou des mots-clés plus d’autres conditions
       Index intégral du texte :
                Ne peut être utilisé que pour les tables MYIsAM, créées sur des colonnes de type CHAR, VARCHAR, TEXT.
      

   8. Comment optimiser MySQL pour de grandes tables (des dizaines de millions) ?
        Référence http://www.zhihu.com/question/19719997

   9. Problème de requête lente de mysql
  En fait, c’est une méthode relativement simple d’analyser à travers des journaux de requêtes lents ; si vous ne voulez pas voir les journaux, vous pouvez utiliser des outils pour les compléter.

Comme mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter, etc., on a l’impression qu’il faut beaucoup d’expérience pour en analyser un, et c’est une perte de temps.

10. Concernant les avantages et inconvénients de l’état de connexion utilisateur session de connexion, cookie, base de données ou http://www.dewen.org/q/11504/

Concernant le statut de connexion de l’utilisateur, les avantages et inconvénients du cookie, de la base de données ou de la memcache de session %2C.

  11. Les cas extrêmes sont traités lors des transactions
  12. SQL langue est divisée en 4 catégories, veuillez la lister
        DDL — CRÉER, LÂCHER, MODIFIER
        DML—INSÉRER, METTRE À JOUR, SUPPRIMER
        DQL-SELECT
        DCL-- ACCORDER, RÉVOQUER, ENGAGER, ANNULER
        

2. PHP bases

      Session

        Plusieurs façons et différences entre la connexion PHP aux bases de données MySQL
    mySQL : orienté processus
    mysqli : orienté objet
    EDO : Haute portabilité
    Veuillez consulter : PHP Basic Series : Trois API utilisées par PHP pour se connecter aux bases de données MySQL

3. PHP Avancé

    Utilisation des connexions longues et courtes

    Douille

    Problèmes de sécurité des paiements

    Orienté objet
    Trois caractéristiques majeures : encapsulation, hérédité et polymorphisme (réécriture de méthode).
    Classe abstraite : abstraite, au moins une méthode est une méthode abstraite qui ne peut pas être instanciée, définissant une interface commune pour la sous-classe.
    Interface : interface, résoudre le problème d’héritage unique de PHP, toutes les méthodes sont des méthodes abstraites d’accès public, vous ne pouvez pas déclarer de variables, seulement des constantes.
    Hériter d’une classe tout en implémentant plusieurs interfaces
    la classe A étend B implémente l’interface 1, l’interface 2..., l’interface n() {
          Implémenter les méthodes dans toutes les interfaces
    }
    Analyse des causes des différences de performance entre les architectures de sites web LAMP et LNMP
    Analyse de performance des langages interprétés et compilés, par exemple.

4. Régularité

      Correspondance par email, HTML, JS, etc.

5. Fondation de développement

          Définitions de processus et de threads, distinctions et connexions.
           L’état du processus : courir, prêt, attendre

6. Base de données NoSQL
       Connexions différenciées Memcached, Redis, Mongodb
       3 scènes, des choses complètement différentes. 1.memcache : Si une seule valeur de clé est mise en cache en mémoire, il n’y a pas de substitut à la mise en cache distribuée des objets ; 2. redis : Il s’agit d’un ensemble d’algorithmes et de structures de données, le fonctionnement rapide des structures de données étant sa plus grande caractéristique, supportant la persistance des données ; 3. MongoDB est une structure BSON, entre RDB et NoSQL, qui est plus souple et plus flexible, mais ne prend pas en charge les transactions et n’est utilisée que comme un stockage de données non important.
     Puis-je me référer à MongoDB ou Redis comme alternative à memcached ?

7. Commandes Linux couramment utilisées
      Par exemple, les liens souples

8. Liés à l’architecture

           Un test de résistance avant que le projet ne soit lancé, le nombre de concurrents supportés par un seul serveur, et le nombre de PV.

           Allocation raisonnable des ressources serveur

             CPU :Apache
                   Dans un environnement à forte charge, trop de lectures et d’écritures d’entrées disque prendront certainement beaucoup de ressources, et le processeur prendra inévitablement trop de CPU.
             Mémoire : Banque de mémoire, logiciel de base de données
               
             Disque dur : fichiers

           Sélection de l’architecture Web2.0

              MongoDB+Redis ou MySQL+Memcached est une meilleure combinaison, et NOSQL est utilisé pour la logique simple

           L’architecture principale du site web est actuellement populaire
    LAMPE、LNMP、LLMP
    Il existe désormais aussi une architecture LNAMP sur le réseau, c’est-à-dire qu’elle combine les avantages de nginx et Apache, utilisant Apache pour charger PHP, nginx est responsable de l’analyse des autres requêtes web, et utilise le module de réécriture de nginx, mais le port Apache n’est pas ouvert au public, et de nombreux modules Apache peuvent réduire les ressources sans chargement.





Précédent:Windows PowerShell pour trouver l’IP de l’attaquant
Prochain:C# identifie l’emplacement du code QR à l’écran
Publié sur 23/12/2016 21:53:52 |
Tu casses tout.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com