|
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. |