|
Nedávno jsem vedl pohovory s několika firmami jednu po druhé a zaznamenal jsem důležité otázky, povzbuzoval jsem se ke studiu a zlepšovaní a zároveň doufal, že mohu pomoci svým přátelům. Je tam spousta obsahu, postupně, krok za krokem, učení. Některé jsou dotazovány na pohovorech, jiné jsou požadavky na nábor a některé jsou přidány samy.
1. Znalosti týkající se MySQL 1. Metoda optimalizace MySQL Běžné metody optimalizace MYSQL Schéma optimalizace výkonu MySQL
2. Jak rozdělit databázi a tabulky Reference: http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html http://www.jb51.net/article/29771.htm 3. Jak provádět hot-standby a vyvažování zátěže pro dva stroje v Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
4. Jaké jsou typy datových tabulek? MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV atd MyISAM: Vyspělé, stabilní, snadno ovladatelné, rychle čitelné. Některé funkce nejsou podporovány (transakce atd.), zámky na úrovni tabulky. InnoDB: Podporuje transakce, cizí klíče a zámky řádků. Zabírá hodně místa a nepodporuje indexování plného textu. Klíčové vlastnosti motorů myisam a Innodb: Jaký je rozdíl mezi úložným enginem MyISAM a InnoDB v MySQL? 5. Metoda injekce antiSQL mysql_escape_string(strip_tags($arr["$val"]); 6. Jak vyřešit problém efektivity dotazů přes tabulky poté, co mysql rozdělí velkou tabulku na více tabulek [php] zobrazit prostou kopii Zobrazit kódové řezy odvozené z mých kódových řezů na CODE /** * Název funkce: post_check() * Funkční funkce: Zpracovává zadané úpravy * Parametr: $post: Obsah, který má být odeslán * Návratová hodnota: $post: Vrací filtrovaný obsah */ funkce post_check($post){ if(!get_magic_quotes_gpc()){// Určí, zda je magic_quotes_gpc otevřený $post = přidané lomky($post); Provést magic_quotes_gpc filtrování odeslaných dat bez nutnosti otevírání } $post = str_replace("_","\_", $post); Filtrujte '_' $post = str_replace("%","\%", $post); Filtrujte '%' $post = nl2br($post); Vstup do konverze $post = htmlspecialchars($post); HTML převod značk návrat $post; } 7. Aplikace indexu Kdy zvážit indexování Jaké situace nejsou vhodné pro indexaci Jak posoudit, zda výrok používá index Časté scénáře, kdy se indexy nepoužívají: Třeba '%.....' Implicitní převod datových typů nebo klíčová slova plus další podmínky Celý textový rejstřík: Lze použít pouze pro tabulky MYIsAM, vytvořené ve sloupcích typu CHAR, VARCHAR, TEXT.
8. Jak optimalizovat mysql pro velké tabulky (desítky milionů)? Referenční http://www.zhihu.com/question/19719997 9. Pomalý dotazovací problém mysql Ve skutečnosti je to poměrně jednoduchý způsob, jak analyzovat pomalé dotazovací záznamy, pokud je nechcete vidět, můžete použít nástroje k jejich dokončení. Jako mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter atd., mám pocit, že k analýze jednoho potřebujete hodně zkušeností a je to ztráta času. 10. Ohledně výhod a nevýhod uživatelského statusu přihlášení – relace, cookie, databáze nebo memcache http://www.dewen.org/q/11504/ Co se týče přihlášení uživatele, výhod a nevýhod session%2Ccookie, databáze nebo memcache 11. Extrémní případy jsou řešeny v transakcích 12. SQL jazyk je rozdělen do 4 kategorií, prosím uveďte je DDL--CREATE, DROP, ALTER DML--INSERT,UPDATE,DELETE DELETE DQL-SELECT DCL--GRANT, REVOKE, COMMIT, ROLLBACK
2. PHP základy Zasedání Několik způsobů a rozdílů mezi připojením PHP k databázím MySQL MySQL: Orientované na procesy mysqli: objektově orientované PDO: Vysoká přenosnost Podívejte se na: PHP Basic Series: Tři API používaná PHP pro připojení k databázím MySQL 3. PHP Pokročilé Použití dlouhých a krátkých spojení Nástrčnice Problémy s bezpečností plateb Objektově orientované Tři hlavní charakteristiky: zapouzdření, dědičnost a polymorfismus (přepisování metody). Abstraktní třída: abstraktní, alespoň jedna metoda je abstraktní metoda, kterou nelze instancionovat, definující společné rozhraní pro podtřídu. Rozhraní: rozhraní, vyřeší problém jediného dědičnosti v PHP, všechny metody jsou abstraktní metody veřejného přístupu, nemůžeš deklarovat proměnné, jen konstanty. Dědit třídu při implementaci více rozhraní třída A rozšiřuje B implementuje rozhraní 1, rozhraní 2..., rozhraní n() { Implementujte metody ve všech rozhraních } Analýza příčin rozdílů ve výkonu mezi architekturami webových stránek LAMP a LNMP Analýza výkonu interpretovaných a zkompilovaných jazyků, příklady. 4. Pravidelnost E-mail, HTML, JS atd. – shoda 5. Rozvojová nadace Definice, rozlišení a spojení procesů a vláken. Stav procesu: běž, připraven, čekej 6. Nosql databáze Memcached, redis, mongodb diferencované spojení 3 scény jsou úplně jiné věci. 1.memcached: Pokud je v paměti uložena jedna klíčová hodnota, neexistuje náhrada za objektové cacheování distribuované cache; 2. REDIS: Jedná se o soubor algoritmů a datových struktur, jeho největší předností je rychlý provoz datových struktur, podporuje perzistenci dat; 3. MongoDB je BSON struktura, která se nachází mezi RDB a NoSQL, je volnější a flexibilnější, ale nepodporuje transakce a používá se pouze jako nedůležité datové úložiště. Mohu jako alternativu k memcached odkazovat na MongoDB nebo redis? 7. Běžně používané linuxové příkazy Například softwarové odkazy 8. Související s architekturou Stresový test před spuštěním projektu, počet souběžnosti podporovaných jedním serverem a počet PV. Rozumné rozdělení serverových zdrojů CPU:Apache V prostředí s vysokou zátěží příliš mnoho čtení a zápisů diskového IO rozhodně zabere hodně zdrojů a CPU nevyhnutelně zabere příliš mnoho CPU. Paměť: paměťová banka, databázový software
Pevný disk: Soubory Výběr architektury Web2.0 MongoDB+Redis nebo MySQL+Memcached je lepší kombinací a NOSQL se používá pro jednoduchou logiku Hlavní architektura webu je v současnosti populární LAMP、LNMP、LLMP Nyní je v síti také architektura LNAMP, která kombinuje výhody nginx a Apache, používá Apache k načítání PHP, nginx je zodpovědný za parsování jiných webových požadavků a používá modul pro přepis nginx, ale port Apache není veřejně přístupný a mnoho modulů Apache může snižovat zdroje bez načítání. |