|
Πρόσφατα, πήρα συνεντεύξεις από πολλές εταιρείες τη μία μετά την άλλη και κατέγραψα μερικές σημαντικές ερωτήσεις, προτρέποντας τον εαυτό μου να σπουδάσει και να βελτιωθεί, και ταυτόχρονα ελπίζοντας να δώσω κάποια βοήθεια στους φίλους μου. Υπάρχει πολύ περιεχόμενο, σιγά σιγά, βήμα προς βήμα μάθηση. Κάποια ερωτώνται σε συνεντεύξεις, άλλα είναι απαιτήσεις πρόσληψης και άλλα προστίθενται από μόνα τους.
1. Γνώσεις σχετικά με τη MySQL 1. Μέθοδος βελτιστοποίησης MySQL Κοινές μέθοδοι βελτιστοποίησης MYSQL Σχήμα βελτιστοποίησης απόδοσης MySQL
2. Πώς να διαιρέσετε τη βάση δεδομένων και τους πίνακες Αναφορά: http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html http://www.jb51.net/article/29771.htm 3. Πώς να κάνετε θερμή αναμονή διπλής μηχανής και εξισορρόπηση φορτίου στη Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
4. Ποιοι είναι οι τύποι πινάκων δεδομένων; MyISAM, InnoDB, HEAP, BOB, ΑΡΧΕΙΟ, CSV κ.λπ. MyISAM: Ώριμο, σταθερό, εύκολο στη διαχείριση, γρήγορο στην ανάγνωση. Ορισμένες λειτουργίες δεν υποστηρίζονται (συναλλαγές κ.λπ.), κλειδώματα σε επίπεδο πίνακα. InnoDB: Υποστηρίζει συναλλαγές, ξένα κλειδιά και κλειδώματα σειρών. Καταλαμβάνει πολύ χώρο και δεν υποστηρίζει ευρετηρίαση πλήρους κειμένου. Βασικά χαρακτηριστικά των κινητήρων myisam και InnoDB: Ποια είναι η διαφορά μεταξύ της μηχανής αποθήκευσης MyISAM της MySQL και του InnoDB; 5. Μέθοδος έγχυσης Anti-SQL mysql_escape_string(strip_tags($arr["$val"])); 6. Πώς να λύσετε το πρόβλημα αποτελεσματικότητας ερωτημάτων μεταξύ πινάκων αφού η mysql χωρίσει έναν μεγάλο πίνακα σε πολλούς πίνακες [php] προβολή απλού αντιγράφου Προβολή τμημάτων κώδικα που προέρχονται από τα τμήματα κώδικα στο CODE /** * Όνομα λειτουργίας: post_check() * Λειτουργία συνάρτησης: Επεξεργάζεται τις υποβληθείσες επεξεργασίες * Παράμετρος: $post: Το περιεχόμενο που θα υποβληθεί * Τιμή επιστροφής: $post: Επιστρέφει φιλτραρισμένο περιεχόμενο */ συνάρτηση post_check($post){ if(!get_magic_quotes_gpc()){// Προσδιορίστε εάν η magic_quotes_gpc είναι ανοιχτή $post = addslashes($post); Εκτελέστε magic_quotes_gpc φιλτράρισμα των υποβληθέντων δεδομένων χωρίς άνοιγμα } $post = str_replace("_","\_", $post); Φιλτράρετε το '_' $post = str_replace("%","\%", $post); Φιλτράρετε το '%' $post = nl2br($post); Εισαγωγή μετατροπής $post = htmlspecialchars($post); Μετατροπή σήμανσης HTML επιστροφή $post? } 7. Εφαρμογή ευρετηρίου Πότε να εξετάσετε το ενδεχόμενο ευρετηρίασης Ποιες καταστάσεις δεν είναι κατάλληλες για ευρετηρίαση Πώς να κρίνετε εάν μια δήλωση χρησιμοποιεί ευρετήριο Συχνά σενάρια όπου δεν χρησιμοποιούνται ευρετήρια: όπως «%.....» Έμμεση μετατροπή τύπων δεδομένων ή λέξεις-κλειδιά συν άλλες προϋποθέσεις Ευρετήριο πλήρους κειμένου: Μπορεί να χρησιμοποιηθεί μόνο για πίνακες MYIsAM, που δημιουργούνται σε στήλες τύπου CHAR, VARCHAR, TEXT.
8. Πώς να βελτιστοποιήσετε τη mysql για μεγάλους πίνακες (δεκάδες εκατομμύρια); Αναφορά http://www.zhihu.com/question/19719997 9. Πρόβλημα αργού ερωτήματος της mysql Στην πραγματικότητα, είναι ένας σχετικά απλός τρόπος ανάλυσης μέσω αργών αρχείων καταγραφής ερωτημάτων, εάν δεν θέλετε να δείτε τα αρχεία καταγραφής, μπορείτε να χρησιμοποιήσετε εργαλεία για να το ολοκληρώσετε. Όπως mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter κ.λπ., αισθάνεστε ότι χρειάζεστε μεγάλη εμπειρία για να αναλύσετε ένα και χάσιμο χρόνου. 10. Σχετικά με τα πλεονεκτήματα και τα μειονεκτήματα της κατάστασης σύνδεσης χρήστη, του cookie, της βάσης δεδομένων ή του memcache http://www.dewen.org/q/11504/ Όσον αφορά την κατάσταση σύνδεσης του χρήστη, τα πλεονεκτήματα και τα μειονεκτήματα του session%2Ccookie, της βάσης δεδομένων ή του memcache 11. Οι ακραίες περιπτώσεις αντιμετωπίζονται στις συναλλαγές 12. SQL γλώσσα χωρίζεται σε 4 κατηγορίες, παρακαλείσθε να αναφέρετε DDL--ΔΗΜΙΟΥΡΓΊΑ,ΑΠΌΘΕΣΗ,ΑΛΛΑΓΉ DML--ΕΙΣΑΓΩΓΉ,ΕΝΗΜΈΡΩΣΗ,ΔΙΑΓΡΑΦΉ DQL-ΕΠΙΛΟΓΉ DCL--ΧΟΡΗΓΗΣΗ,ΑΝΑΚΛΗΣΗ,ΔΕΣΜΕΥΣΗ,ΑΝΑΤΡΟΠΗ
2. PHP βασικά στοιχεία συνεδρία Διάφοροι τρόποι και διαφορές μεταξύ της σύνδεσης PHP σε βάσεις δεδομένων MySQL MySQL: προσανατολισμένη στη διαδικασία MySQLI: αντικειμενοστραφής PDO: Υψηλή φορητότητα Ανατρέξτε στο: Βασική σειρά PHP: Τρία API που χρησιμοποιούνται από την PHP για σύνδεση σε βάσεις δεδομένων MySQL 3. PHP Για προχωρημένους Χρήση μακρών και σύντομων συνδέσεων πρίζα Ζητήματα ασφάλειας πληρωμών Αντικειμενοστραφής Τρία κύρια χαρακτηριστικά: ενθυλάκωση, κληρονομικότητα και πολυμορφισμός (επανεγγραφή μεθόδου). Αφηρημένη κλάση: αφηρημένη, τουλάχιστον μία μέθοδος είναι μια αφηρημένη μέθοδος που δεν μπορεί να δημιουργηθεί, ορίζοντας μια κοινή διεπαφή για την υποκλάση. Διεπαφή: διεπαφή, λύστε το πρόβλημα μεμονωμένης κληρονομικότητας της PHP, όλες οι μέθοδοι είναι αφηρημένες μέθοδοι δημόσιας πρόσβασης, δεν μπορείτε να δηλώσετε μεταβλητές, μόνο σταθερές. Κληρονομήστε μια κλάση κατά την υλοποίηση πολλαπλών διεπαφών Η κλάση Α επεκτείνει το Β υλοποιεί τη διεπαφή 1, τη διεπαφή 2..., τη διεπαφή n() { Εφαρμογή μεθόδων σε όλες τις διεπαφές } Ανάλυση των αιτιών των διαφορών στην απόδοση μεταξύ των αρχιτεκτονικών ιστοσελίδων LAMP και LNMP Ανάλυση απόδοσης ερμηνευμένων και μεταγλωττισμένων γλωσσών, παραδείγματα. 4. Κανονικότητα Αντιστοίχιση email, HTML, JS κ.λπ. 5. Αναπτυξιακό ίδρυμα Ορισμοί, διακρίσεις και συνδέσεις διεργασιών και νημάτων. Η κατάσταση της διαδικασίας: τρέξτε, έτοιμοι, περιμένετε 6. Βάση δεδομένων Nosql Memcached, redis, mongodb διαφοροποιημένες συνδέσεις 3 σκηνές εντελώς διαφορετικά πράγματα. 1.memcached: Εάν μια μεμονωμένη τιμή κλειδιού είναι αποθηκευμένη προσωρινά στη μνήμη, δεν υπάρχει υποκατάστατο για την προσωρινή αποθήκευση αντικειμένων στην κατανεμημένη κρυφή μνήμη. 2. redis: Είναι μια συλλογή αλγορίθμων και δομών δεδομένων, η γρήγορη λειτουργία της δομής δεδομένων είναι το μεγαλύτερο χαρακτηριστικό της, υποστηρίζοντας την επιμονή των δεδομένων. 3. Το MongoDB είναι μια δομή BSON, μεταξύ RDB και NoSQL, η οποία είναι πιο χαλαρή και πιο ευέλικτη, αλλά δεν υποστηρίζει συναλλαγές και χρησιμοποιείται μόνο ως μη σημαντικός χώρος αποθήκευσης δεδομένων. Μπορώ να αναφερθώ στο MongoDB ή στο redis ως εναλλακτική λύση στο memcached; 7. Εντολές Linux που χρησιμοποιούνται συνήθως Για παράδειγμα, soft links 8. Σχετικά με την αρχιτεκτονική Δοκιμή ακραίων καταστάσεων πριν από την έναρξη λειτουργίας του έργου, τον αριθμό των ταυτόχρονων που υποστηρίζονται από έναν μόνο διακομιστή και τον αριθμό των φωτοβολταϊκών. Λογική κατανομή πόρων διακομιστή ΕΠΕΞΕΡΓΑΣΤΗΣ:Apache Σε περιβάλλον υψηλού φορτίου, πάρα πολλές αναγνώσεις και εγγραφές IO δίσκου θα καταλαμβάνουν σίγουρα πολλούς πόρους και η CPU αναπόφευκτα θα καταλαμβάνει πάρα πολύ CPU. Μνήμη: Τράπεζα μνήμης, λογισμικό βάσης δεδομένων
Σκληρός Δίσκος: Αρχεία Επιλογή αρχιτεκτονικής Web2.0 Το MongoDB+Redis ή το MySQL+Memcached είναι καλύτερος συνδυασμός και το NOSQL χρησιμοποιείται για απλή λογική Η κύρια αρχιτεκτονική του ιστότοπου είναι αυτή τη στιγμή δημοφιλής ΛΆΜΠΑ、LNMP、LLMP Τώρα υπάρχει επίσης μια αρχιτεκτονική LNAMP στο δίκτυο, δηλαδή συνδυάζει τα πλεονεκτήματα του nginx και του Apache, χρησιμοποιώντας το Apache για τη φόρτωση της PHP, το nginx είναι υπεύθυνο για την ανάλυση άλλων αιτημάτων ιστού και χρησιμοποιεί τη μονάδα επανεγγραφής του nginx, αλλά η θύρα Apache δεν είναι ανοιχτή στο κοινό και πολλές ενότητες του Apache μπορούν να μειώσουν τους πόρους χωρίς φόρτωση. |