|
Hiljuti intervjueerisin järjest mitut ettevõtet ja salvestasin mõned olulised küsimused, sundides end õppima ja arenema ning samal ajal lootes aidata oma sõpru. Seal on palju sisu, samm-sammult, samm-sammult õppimist. Mõned küsitakse intervjuudel, mõned on värbamisnõuded ja mõned lisatakse ise.
1. MySQL-iga seotud teadmised 1. MySQL optimeerimismeetod MYSQL optimeerimise levinumad meetodid MySQL jõudluse optimeerimise skeem
2. Kuidas jagada andmebaas ja tabelid Viide: http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html http://www.jb51.net/article/29771.htm 3. Kuidas teha kahe masina kuumrežiimi ja koormuse tasakaalustamist Mysql+-s
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
4. Millised on andmetabelite tüübid? MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV jne MyISAM: Küps, stabiilne, lihtne hallata, kiire lugeda. Mõned funktsioonid ei ole toetatud (näiteks tehingud jne), tabelitasandi lukud. InnoDB: Toetab tehinguid, võõrvõtmeid ja realukustusi. See võtab palju ruumi ega toeta täisteksti indekseerimist. Myisam ja Innodb mootorite peamised omadused: Mis on MySQL-i salvestusmootoril MyISAM ja InnoDB? 5. Anti-SQL süstimismeetod mysql_escape_string(strip_tags($arr["$val"])); 6. Kuidas lahendada risttabeli päringute efektiivsuse probleem pärast seda, kui mysql jagab suure tabeli mitmeks tabeliks [php] vaata tavalist koopiat Vaata koodiviile, mis tuletatakse minu koodilõikudest CODE-is /** * Funktsiooni nimi: post_check() * Funktsioonifunktsioon: Töötleb esitatud muudatusi * Parameeter: $post: Esitatav sisu * Tagastusväärtus: $post: Tagastab filtreeritud sisu */ funktsioon post_check($post){ if(!get_magic_quotes_gpc()){// Määra, kas magic_quotes_gpc on avatud $post = lisandkriipsud($post); Tee esitatud andmete magic_quotes_gpc filtreerimist ilma avamata } $post = str_replace("_","\_", $post); Filtreeri välja '_' $post = str_replace("%","\%", $post); Filtreeri '%' välja $post = nl2br($post); Sisenemine konverteerimisele $post = htmlspecialchars($post); HTML-märgistuse teisendus Tagasi $post; } 7. Indeksi rakendus Millal kaaluda indekseerimist Millised olukorrad ei sobi indekseerimiseks Kuidas hinnata, kas väide kasutab indeksit Sagedased olukorrad, kus indekseid ei kasutata: nagu '%.....' Andmetüüpide implitsiitne teisendus või märksõnad pluss muud tingimused Täisteksti indeks: Saab kasutada ainult MYIsAM tabelite jaoks, mis on loodud veergudele tüübiga CHAR, VARCHAR, TEXT.
8. Kuidas optimeerida MySQL-i suurte tabelite (kümnete miljonite) jaoks? Viide http://www.zhihu.com/question/19719997 9. MySQL aeglane päringuprobleem Tegelikult on see suhteliselt lihtne viis analüüsida aeglaste päringulogide kaudu – kui sa ei taha logisid näha, saad tööriistadega selle täitmiseks kasutada. Näiteks mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter jne, tundub, et analüüsimiseks on vaja palju kogemusi ja see on ajaraisk. 10. Kasutaja sisselogimise staatuse eeliste ja puuduste kohta sessiooni, küpsise, andmebaasi või memcache http://www.dewen.org/q/11504/ Kasutaja sisselogimise staatuse, session%2Ccookie, andmebaasi või memcache eeliste ja puuduste osas 11. Äärmuslikke juhtumeid käsitletakse tehingutes 12. SQL keel on jagatud neljaks kategooriaks, palun loetle DDL--LOO, JÄTA, MUUDA DML--INSERT, UPDATE, DELETE DQL-SELECT DCL--ANDMINE, TÜHISTAMINE, KOHUSTUS, TAGASIPÖÖRAMINE
2. PHP põhitõed Sessioon Mitmed viisid ja erinevused PHP ühendamisel MySQL andmebaasidega MySQL: protsessipõhine mysqli: objektorienteeritud PDO: Kõrge kaasaskantavus Palun vaata: PHP Basic seeria: Kolm API-d, mida PHP kasutab MySQL andmebaasidega ühenduse loomiseks 3. PHP Edasijõudnud Pikkade ja lühikeste ühenduste kasutamine Pistikupesa Makseturvalisuse probleemid Objektorienteeritud Kolm peamist tunnust: kapseldamine, pärilikkus ja polümorfism (meetodi ümberkirjutamine). Abstraktne klass: abstraktne, vähemalt üks meetod on abstraktne meetod, mida ei saa instantsierida, määratledes alamklassi ühise liidese. Liides: liides, lahenda PHP ühe päriluse probleem, kõik meetodid on avaliku ligipääsu abstraktsed meetodid, muutujaid ei saa deklareerida, ainult konstandeid. Klassi pärimine mitme liideste rakendamisel klass A laiendab liidese 1, liidese 2..., liidese n() { Rakenda meetodeid kõigis liidestes } LAMP ja LNMP veebilehtede arhitektuuride erinevuste põhjuste analüüs jõudluse erinevustest Tõlgendatud ja kompileeritud keelte jõudlusanalüüs, näited. 4. Regulaarsus E-posti, HTML, js jne sobitamine 5. Arenduse alus Protsesside ja lõimide definitsioonid, eristused ja seosed. Protsessi seis: jookse, valmis, oota 6. NoSQL andmebaas Memcached, redis, mongodb diferentseeritud ühendused 3 stseeni täiesti erinevad asjad. 1.memcached: Kui mälus on vahemällu salvestatud üks võtmeväärtus, ei ole objektide vahemällu salvestamise hajutatud vahemälu asendajat; 2. redis: See on algoritmide ja andmestruktuuride kogum, kiire andmestruktuuri operatsioon on selle suurim omadus, toetades andmete püsivust; 3. MongoDB on BSON-struktuur, mis asub RDB ja NoSQL vahel, mis on lõdvem ja paindlikum, kuid ei toeta tehinguid ning seda kasutatakse ainult mitteolulise andmehoidlasena. Kas ma võin viidata MongoDB-le või redisele kui alternatiivile memcachedile? 7. Levinumad Linuxi käsud Näiteks pehmed lingid 8. Arhitektuuriga seotud Enne projekti käivitamist tee stressitest, kui palju üheaegseid paralleelseid on ühe serveri poolt toetatud ja kui palju PV-sid on. Serveri ressursside mõistlik jaotus CPU:Apache Kõrge koormusega keskkonnas võtab liiga palju ketta IO lugemisi ja kirjutamisi kindlasti palju ressursse ning protsessor võtab paratamatult liiga palju protsessorit. Mälu: Mälupank, andmebaasitarkvara
Kõvaketas: failid Web2.0 arhitektuuri valik MongoDB+Redis või MySQL+Memcached on parem kombinatsioon ning lihtsa loogika jaoks kasutatakse NOSQL-i Peamine veebilehe arhitektuur on praegu populaarne LAMP、LNMP、LLMP Nüüd on võrgus olemas ka LNAMP arhitektuur, mis ühendab nginx ja Apache eelised, kasutades Apache'i PHP laadimiseks, nginx vastutab teiste veebipäringute parsimise eest ning kasutab nginxi ümberkirjutamismoodulit, kuid Apache port ei ole avalikkusele avatud ning paljud Apache moodulid suudavad ressursse vähendada ilma laadimiseta. |