Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 11174|Svar: 1

php Senior Programmer Arkitekt Interviewspørgsmål

[Kopier link]
Opslået på 23/12/2016 09.10.09 | | |


For nylig interviewede jeg flere virksomheder én efter én, og jeg optog nogle vigtige spørgsmål, hvor jeg opfordrede mig selv til at studere og forbedre mig, og samtidig håbede jeg at kunne hjælpe mine venner.
Der er meget indhold, lidt efter lidt, trin-for-trin læring.
Nogle bliver spurgt til samtaler, nogle er rekrutteringskrav, og nogle tilføjes af sig selv.

1. MySQL-relateret viden
    1. MySQL-optimeringsmetode
            MYSQL-optimering almindelige metoder
            MySQL ydelsesoptimeringsskema
  
    2. Hvordan man opdeler databasen og tabellerne
           Reference:
   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

   3. Hvordan man laver dual machine hot standby og load balancing i Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4. Hvilke typer datatabeller findes der?
       MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV osv
       MyISAM: Moden, stabil, let at håndtere, hurtig at læse. Nogle funktioner understøttes ikke (transaktioner osv.), tabelniveau-låse.
       InnoDB: Understøtter transaktioner, fremmednøgler og rækkelåse. Den fylder meget og understøtter ikke fuldtekstindeksering.

       Nøglefunktioner ved myisam- og Innodb-motorerne:
       Hvad er forskellen mellem MySQLS lagringsmotor MyISAM og InnoDB?

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

   6. Hvordan man løser problemet med tværbordforespørgselseffektivitet efter at MySQL har opdelt en stor tabel i flere tabeller

[php] se almindelig kopi
Se kodeudslag afledt af mine kodeudsnit på CODE

    /**
    * Funktionsnavn: post_check()  
    * Funktionsfunktion: Behandler de indsendte redigeringer  
    * Parameter: $post: Det indhold, der skal indsendes,  
    * Returværdi: $post: Returnerer filtreret indhold  
    */  
    funktion post_check($post){  
    hvis(!get_magic_quotes_gpc()){// Bestem om magic_quotes_gpc er åben   
    $post = addslashes($post); Udfør magic_quotes_gpc filtrering af indsendte data uden at åbne dem   
    }  
    $post = str_replace("_","\_", $post); Filtrer '_' fra  
    $post = str_replace("%","\%", $post); Filtrer '%' fra  
    $post = nl2br($post); Indtræd i konverteringen   
    $post = htmlspecialchars($post); HTML Markup-konvertering   
    vend tilbage $post;  
    }  

   7. Indeksanvendelse
         Hvornår man bør overveje indeksering
         Hvilke situationer egner sig ikke til indeksering
         Hvordan man vurderer, om en erklæring bruger et indeks
        Hyppige scenarier, hvor indeks ikke anvendes:
                som '%.....'
                Implicit konvertering af datatyper
                eller nøgleord plus andre betingelser
       Fuld tekstindeks:
                Kan kun bruges til MYIsAM-tabeller, oprettet på kolonner af typen CHAR, VARCHAR, TEXT.
      

   8. Hvordan optimerer man MySQL til store tabeller (titusindvis af millioner)?
        Reference http://www.zhihu.com/question/19719997

   9. Langsomt forespørgselsproblem i mysql
  Faktisk er det en relativt simpel måde at analysere gennem langsomme forespørgselslogs; hvis du ikke vil se loggene, kan du bruge værktøjer til at gennemføre dem.

Som mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter osv., føles som om, du skal have meget erfaring for at analysere en, og det er spild af tid.

10. Vedrørende fordele og ulemper ved brugerlogin-statussession, cookie, database eller memcache http://www.dewen.org/q/11504/

Med hensyn til brugerens loginstatus, fordele og ulemper ved session%2Ccookie, database eller memcache

  11. Ekstreme tilfælde håndteres i transaktioner
  12. SQL sprog er opdelt i 4 kategorier, venligst oplys
        DDL--SKAB, SLIP, ÆNDR
        DML--INDSÆT, OPDATERING, SLET
        DQL-SELECT
        DCL--GIV, TILBAGEKALD, COMMIT, ROLLBACK
        

2. PHP grundlæggende

      Session

        Flere måder og forskelle mellem PHP og forbindelse til MySQL-databaser
    MySQL: Procesorienteret
    MySQLI: Objektorienteret
    PDO: Høj bærbarhed
    Se venligst: PHP Basic Series: Tre API'er brugt af PHP til at forbinde til MySQL-databaser

3. PHP Avanceret

    Brug af lange og korte forbindelser

    Soklet

    Betalingssikkerhedsproblemer

    Objektorienteret
    Tre hovedkarakteristika: indkapsling, arv og polymorfi (metodeomskrivning).
    Abstrakt klasse: abstrakt, mindst én metode er en abstrakt metode, der ikke kan instansieres, og definerer et fælles interface for underklassen.
    Interface: interface, løs single inheritance-problemet i PHP, alle metoder er abstrakte metoder med offentlig adgang, du kan ikke erklære variabler, kun konstanter.
    Arve en klasse, mens du implementerer flere grænseflader
    klasse A udvider B implementerer grænseflade 1, grænseflade 2..., grænseflade n() {
          Implementer metoder i alle grænseflader
    }
    Analyse af årsagerne til forskelle i ydeevne mellem LAMP- og LNMP-webstedsarkitekturer
    Performanceanalyse af fortolkede og kompilerede sprog, eksempler.

4. Regelmæssighed

      E-mail, HTML, JS osv. Matchning

5. Udviklingsfond

          Proces- og tråddefinitioner, skel og forbindelser.
           Processens tilstand: løb, klar, vent

6. Nosql-database
       Memcached, redis, mongodb differentierede forbindelser
       3 scener er helt forskellige ting. 1. memcached: Hvis en enkelt nøgleværdi caches i hukommelsen, findes der ingen erstatning for objektcaching distribueret cache; 2. redis: Det er en samling af algoritmer og datastrukturer, hurtig datastrukturfunktion er dens største funktion, der understøtter datapersistens; 3. MongoDB er en BSON-struktur mellem RDB og NoSQL, som er løsere og mere fleksibel, men den understøtter ikke transaktioner og bruges kun som en ikke-vigtig datalager.
     Kan jeg henvise til MongoDB eller Redis som et alternativ til memcached?

7. Almindeligt anvendte Linux-kommandoer
      For eksempel bløde links

8. Arkitekturrelateret

           Stresstest før projektet går live, antallet af samtidighed, der understøttes af en enkelt server, og antallet af PV'er.

           Rimelig fordeling af serverressourcer

             CPU:Apache
                   I et miljø med høj belastning vil for mange disk-IO-læsninger og -skrivninger helt sikkert bruge mange ressourcer, og CPU'en vil uundgåeligt optage for meget CPU.
             Hukommelse: Hukommelsesbank, databasesoftware
               
             Harddisk: Filer

           Web2.0 arkitekturvalg

              MongoDB+Redis eller MySQL+Memcached er en bedre kombination, og NOSQL bruges til simpel logik

           Hovedhjemmesidens arkitektur er i øjeblikket populær
    LAMP、LNMP、LLMP
    Der er også en LNAMP-arkitektur på netværket, det vil sige, at den kombinerer fordelene fra nginx og Apache, bruger Apache til at indlæse PHP, nginx er ansvarlig for at parse andre webforespørgsler og bruger nginx's omskrivningsmodul, men Apache-porten er ikke åben for offentligheden, og mange Apache-moduler kan reducere ressourcer uden at blive indlæst.





Tidligere:Windows PowerShell til at finde angriberens IP
Næste:C# identificerer placeringen af QR-koden på skærmen
Opslået på 23/12/2016 21.53.52 |
Du smadrer alt.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com