|
最近、いくつかの企業を次々と面接し、重要な質問をいくつか記録し、勉強と上達を自分に促しつつ、友人たちの助けにもなればと思っていました。 内容はたくさんあり、少しずつ、ステップバイステップで学んでいきます。 面接で聞かれるものもあれば、採用要件のもの、そして自動的に追加されるものもあります。
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、ARCHIVE、CSV などです MyISAM:成熟していて安定していて、管理しやすく、読みやすいです。 一部の機能はサポートされていません(トランザクションなど)、テーブルレベルのロックなどです。 InnoDB:トランザクション、外部鍵、行ロックをサポートします。 容量を多く取り、全文インデックス作成には対応していません。 myisamおよびInnodBエンジンの主な特徴: MySQLのストレージエンジンMyISAMとInnoDBの違いは何ですか? 5. アンチ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 = アッドスラッシュ($post); 開magic_quotes_gpcせずに提出されたデータのフィルタリングを行う } $post = str_replace("_","\_",$post); 「_」をフィルターで除外してください $post = str_replace("%","\%"、$post); 「%」をフィルタリングしてください $post = nl2br($post); ここでコンバージョンの登場です $post = htmlspecialchars($post); HTMLマークアップ変換 リターン$post; } 7. インデックスの適用 インデックス作成を検討すべき時期 インデックス作成に適さない状況 文がインデックスを使うかどうかを判断する方法 インデックスが使われないよくあるシナリオ: 例えば「%.....」 データ型の暗黙的変換 またはキーワードにその他の条件を加えた 全文索引: MYIsAMテーブルにのみ使用可能で、CHAR、VARCHAR、テキストのタイプで作成されます。
8. 数千万もの大規模なテーブル向けにMySQLをどのように最適化するか? 参考文献 http://www.zhihu.com/question/19719997 9. mySQLのスロークエリ問題 実際、遅いクエリログを分析するのは比較的簡単な方法で、ログを見たくなければツールを使って完了できます。 mysqldumpslow、mysqlsla、myprofi、mysql-explain-slow-log、mysqllogfilterなどは、分析するには多くの経験が必要で、時間の無駄に感じます。 10. ユーザーログインステータスセッション、クッキー、データベース、またはメムキャッシュ http://www.dewen.org/q/11504/ の利点と欠点について ユーザーのログイン状態、session%2Ccookie、データベース、またはmemcacheの利点と欠点について 11. 極端なケースは取引で扱われます 言語12. SQL 4つのカテゴリーに分かれています。リストアップしてください DDL――作成、落とし、改変 DML--挿入、更新、削除 DQL-SELECT(DQL-SELECT) DCL――助成金、取り消し、コミット、ロールバック
2. PHP基本 セッション PHPがMySQLデータベースに接続するいくつかの方法と違い MySQL:プロセス指向 MySQLi: オブジェクト指向 PDO:高い携帯性 以下を参照してください:PHP Basic シリーズ:PHPがMySQLデータベースに接続するために使う3つのAPI 3. PHP アドバンスド 長距離接続と短距離接続の利用 ソケット 決済セキュリティの問題 オブジェクト指向 主な特徴はカプセル化、継承、多型(メソッド書き換え)です。 抽象クラス:抽象的で、少なくとも1つのメソッドは抽象化できない方法で、サブクラスの共通インターフェースを定義します。 インターフェース:インターフェース、PHPの単一継承問題を解決します。すべてのメソッドは抽象的なパブリックアクセスメソッドで、変数は宣言できず定数のみです。 複数のインターフェースを実装しながらクラスを継承する クラスAは拡張Bを実装し、インターフェース1、インターフェース2...、インターフェースn() { すべてのインターフェースでメソッドを実装してください } LAMPとLNMPのウェブサイトアーキテクチャにおけるパフォーマンスの違いの原因の分析 インタプリタ言語およびコンパイル言語のパフォーマンス分析、例。 4. 正則性 メール、HTML、JSなどのマッチング 5. 開発基盤 プロセスとスレッドの定義、区別、接続。 プロセスの状態:ラン、準備、待機 6. Nosqlデータベース Memcached、redis、mongodb 差別化接続 3つのシーンは全く異なるものでした。 1.memcached:単一のキー値がメモリにキャッシュされている場合、分散キャッシュのオブジェクトキャッシュに代わるものはありません。 2. redis:アルゴリズムとデータ構造の集合体であり、高速なデータ構造操作が最大の特徴であり、データの永続性をサポートします。 3. MongoDBはRDBとNoSQLの間にあるBSON構造で、より緩やかで柔軟性がありますが、トランザクションはサポートせず、重要でないデータストアとしてのみ使用されます。 Memcachedの代替としてMongoDBやredisを参照してもいいですか? 7. 一般的に使われるLinuxコマンド 例えば、ソフトリンク 8. 建築関連 プロジェクトが稼働する前に、単一サーバーでサポートされる並行処理の量、PVの数をストレステストします。 サーバーリソースの合理的な配分 CPU:Apache 高負荷環境では、ディスクIOの読み書きが多すぎると確実に多くのリソースを消費し、CPUも必然的にCPUを過剰に消費します。 メモリ:メモリバンク、データベースソフトウェア
ハードドライブ:ファイル Web2.0アーキテクチャ選択 MongoDB+RedisまたはMySQL+Memcachedの組み合わせが適しており、単純なロジックにはNOSQLが使われます 現在、メインのウェブサイトアーキテクチャが人気です ランプ、LNMP、LLMP 現在、ネットワーク上にはLNAMPアーキテクチャもあり、これはnginxとApacheの利点を組み合わせたもので、Apacheを使ってPHPを読み込み、nginxは他のウェブリクエストの解析を担当し、nginxのrewriteモジュールを使用しますが、Apacheのポートは一般公開されておらず、多くのApacheモジュールはロードせずにリソースを削減できます。 |