|
Nyligen intervjuade jag flera företag ett efter ett, och jag spelade in några viktiga frågor, uppmanade mig själv att studera och förbättras, samtidigt som jag hoppades kunna hjälpa mina vänner. Det finns mycket innehåll, steg för steg lärande. Vissa ställs upp i intervjuer, vissa är rekryteringskrav, och vissa läggs till av sig själva.
1. MySQL-relaterad kunskap 1. MySQL-optimeringsmetod MYSQL-optimering – vanliga metoder MySQL prestandaoptimeringsschema
2. Hur man delar upp databasen och tabellerna Referens: http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html http://www.jb51.net/article/29771.htm 3. Hur man gör dual machine hot standby och lastbalansering i Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
4. Vilka typer av datatabeller finns det? MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, etc MyISAM: Moget, stabilt, lätt att hantera, snabbt att läsa. Vissa funktioner stöds inte (transaktioner, etc.), tabellnivålås. InnoDB: Stöder transaktioner, främmande nycklar och radlås. Den tar upp mycket plats och stöder inte fulltextindexering. Nyckelfunktioner hos myisam- och Innodb-motorerna: Vad är skillnaden mellan MySQL:s lagringsmotor MyISAM och InnoDB? 5. Anti-SQL-injektionsmetod mysql_escape_string(strip_tags($arr["$val"])); 6. Hur man löser problemet med tvärbordsfrågeeffektivitet efter att MySQL delar upp en stor tabell i flera tabeller [php] Visa vanlig kopia Visa kodskivor härledda från mina kodskivor på CODE /** * Funktionsnamn: post_check() * Funktionsfunktion: Bearbetar de inskickade redigeringarna * Parameter: $post: Innehållet som ska skickas in * Returvärde: $post: Returnerar filtrerat innehåll */ funktion post_check($post){ om(!get_magic_quotes_gpc()){// Bestäm om magic_quotes_gpc är öppen $post = adder-snedstreck($post); Utför magic_quotes_gpc filtrering av inskickad data utan att öppna } $post = str_replace("_","\_", $post); Filtrera bort '_' $post = str_replace("%","\%", $post); Filtrera bort '%' $post = nl2br($post); Inträde i konverteringen $post = htmlspecialchars($post); HTML-uppmärkningskonvertering återvända $post; } 7. Indexapplikation När man bör överväga indexering Vilka situationer är inte lämpliga för indexering Hur man bedömer om ett uttalande använder ett index Vanliga scenarier där index inte används: Typ '%.....' Implicit konvertering av datatyper eller nyckelord plus andra villkor Fulltextindex: Kan endast användas för MYIsAM-tabeller, skapade på kolumner av typen CHAR, VARCHAR, TEXT.
8. Hur optimerar man MySQL för stora tabeller (tiotals miljoner)? Referens http://www.zhihu.com/question/19719997 9. Långsam frågeproblem i mysql Faktum är att det är ett relativt enkelt sätt att analysera genom långsamma fråge-loggar, om du inte vill se loggarna kan du använda verktyg för att slutföra det. Som mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter, etc., känns som att man behöver mycket erfarenhet för att analysera en, och det är slöseri med tid. 10. Angående för- och nackdelar med användarinloggningsstatus, session, cookie, databas eller memcache http://www.dewen.org/q/11504/ När det gäller användarens inloggningsstatus, för- och nackdelar med session%2Ccookie, databas eller memcache 11. Extrema fall hanteras i transaktioner 12. SQL språk är indelat i fyra kategorier, vänligen lista DDL--SKAPA, SLÄPPA, ÄNDRA DML--INFOGA, UPPDATERA, TA BORT DQL-SELECT DCL--BEVILJA, ÅTERKALLA, BINDA, RULLA TILLBAKA
2. PHP grunderna Session Flera sätt och skillnader mellan PHP och anslutning till MySQL-databaser MySQL: Processorienterat MySQLI: Objektorienterad PDO: Hög portabilitet Se gärna: PHP Basic Series: Tre API:er som används av PHP för att ansluta till MySQL-databaser 3. PHP Avancerad Användning av långa och korta anslutningar Hylsa Betalningssäkerhetsproblem Objektorienterat Tre huvudsakliga egenskaper: inkapsling, arv och polymorfism (metodomskrivning). Abstrakt klass: abstrakt, minst en metod är en abstrakt metod som inte kan instansieras, och definierar ett gemensamt gränssnitt för underklassen. Gränssnitt: gränssnitt, lös problemet med enkel arv i PHP, alla metoder är abstrakta metoder för offentlig åtkomst, du kan inte deklarera variabler, bara konstanter. Ärva en klass samtidigt som du implementerar flera gränssnitt klass A utvidgar B implementerar gränssnitt 1, gränssnitt 2..., gränssnitt n() { Implementera metoder i alla gränssnitt } Analys av orsakerna till skillnader i prestanda mellan LAMP- och LNMP-webbplatsarkitekturer Prestandaanalys av tolkade och kompilerade språk, exempel. 4. Regelbundenhet Matchning av e-post, html, js, etc. 5. Utvecklingsstiftelse Process- och tråddefinitioner, distinktioner och kopplingar. Processens tillstånd: spring, redo, vänta 6. Nosql-databas Memcached, redis, mongodb differentierade kopplingar 3 scener är helt olika saker. 1.memcached: Om ett enda nyckelvärde är cachad i minnet finns det inget substitut för objektcaching av distribuerad cache; 2. redis: Det är en samling algoritmer och datastrukturer, snabb datastrukturfunktion är dess största egenskap och stödjer databeständighet; 3. MongoDB är en BSON-struktur mellan RDB och NoSQL, som är lösare och mer flexibel, men den stöder inte transaktioner och används endast som ett icke-viktigt datalagringsutrymme. Kan jag hänvisa till MongoDB eller Redis som ett alternativ till memcached? 7. Vanligt använda Linux-kommandon Till exempel mjuka länkar 8. Arkitekturrelaterat Stresstest innan projektet går live, antalet samtidigheter som stöds av en enda server och antalet PV:er. Rimlig fördelning av serverresurser CPU:Apache I en miljö med hög belastning kommer för många disk-IO-läsningar och skrivningar definitivt att ta upp mycket resurser, och CPU:n kommer oundvikligen att ta upp för mycket CPU. Minne: Minnesbank, databasprogramvara
Hårddisk: Filer Val av web2.0-arkitektur MongoDB+Redis eller MySQL+Memcached är en bättre kombination, och NOSQL används för enkel logik Huvudwebbplatsens arkitektur är för närvarande populär LAMP、LNMP、LLMP Nu finns det också en LNAMP-arkitektur på nätverket, det vill säga den kombinerar fördelarna med nginx och Apache, använder Apache för att ladda PHP, nginx ansvarar för att analysera andra webbförfrågningar och använder nginx:s omskrivningsmodul, men Apache-porten är inte öppen för allmänheten, och många Apache-moduler kan minska resurserna utan att behöva ladda. |