ホームページ  >  記事  >  バックエンド開発  >  PHP 面接で聞かなければならない面接の質問

PHP 面接で聞かなければならない面接の質問

不言
不言オリジナル
2018-05-15 14:04:4321521ブラウズ

この記事の内容は、PHP の面接で必ず聞かれる面接の質問です。ここで共有します。困っている友達の参考にもなります。一緒に見てみましょう。 2019年PHP面接の質問大まとめ(集)

1. CSSの配置方法とは?そして、

positionとは英語で「
position

」という意味で、主に

要素の配置を実現するために使用されます。

position:fixed

Positioning

position: relatvie 相対位置決め

position:absolute 絶対位置決め

position:static 特別な位置決めはありません (デフォルト値)。 注:

位置決め属性を使用するときは、必ず位置決め座標と組み合わせて使用​​してください。

left

:

は、配置された要素が左からどのくらい離れているかを表します right

:

は、配置された要素が右からどのくらい離れているかを表します top

:

は、配置された要素がどのくらい離れているかを表しますは上からです bottom

:

は、配置された要素が下からどのくらい離れているかを表します 1 固定配置 構文:

position:fixed

を基準にして配置される固定配置ブラウザウィンドウ。ページがどのようにスクロールされても、固定位置要素によって表示される位置は変わりません。

特徴: 固定位置要素は標準ドキュメントフローから分離されています

固定位置要素のレベルは標準ドキュメントフローの要素よりも高いため、固定位置要素は標準ドキュメントフローの要素をカバーします

固定位置の要素がスペースを占有しなくなりました

固定位置の要素 ブラウザのスクロールに合わせて表示位置がスクロールしなくなりました

2 相対配置

構文:

position:relative;

相対配置 「」に相対的です本来の自分」を自分のポジショニングに!

特徴:相対的に配置された要素は、標準のドキュメントフローから逸脱しません

相対的に配置された要素が位置座標を設定しない場合、相対的に配置された要素は元の位置のままになります

相対的に配置された要素の後位置座標を設定すると、その故郷に穴が残ります

相対的に配置された要素は、標準のドキュメント フロー内の要素を圧倒します。

相対的に配置された要素の配置座標値は、負の数値になる可能性があります

注:

故郷に穴が残るため、一般に、相対的に配置された要素が単独で使用されることはほとんどありません。絶対位置

」要素を使用します。

3 絶対位置決め

文法:

position:absolute;

絶対位置決めとは何ですか?

絶対的に配置された要素は、「祖先に配置された要素

」を基準にして配置されます。

祖先に配置された要素とは何ですか?

絶対位置の要素

最初に、その親要素に位置決め属性が設定されているかどうかがチェックされます

位置決め属性が設定されている場合は、その親要素に対して相対的に配置されます。

しかし、その親要素がPositioning 属性が設定されていない場合、その親要素の上位レベルの要素に Positioning 属性が設定されているかどうかがチェックされます。設定されている場合は、その親要素の上位レベルの要素に対して相対的に配置されます。が設定されていない場合は、1 つ上のレベルの検索が続行されます。

その祖先要素に配置属性が設定されていない場合は、「

ブラウザ ウィンドウ

」を基準に配置されます。

① 絶対配置を自分で設定する場合: 親要素が位置属性を設定していない場合は、本文に対して相対的に配置されます

② 絶対配置を自分で設定する場合: 親要素

も位置属性を設定する場合

属性を設定した場合、親要素が配置されます

③自分で絶対配置を設定する場合: 親要素も配置属性を設定すると、親要素を基準に配置されます

2. JQ を使用して AJAX リクエストを送信するには、$.ajax を設定する必要があります どのようなパラメータですか? ?どういう意味でしょうか? ?

jQuery.ajax(options)パラメータの説明:

オプション: パラメータは 1 つだけあり、JSON 形式のデータである必要があります。次の属性を設定できます。

async: 非同期かどうか。true は非同期を意味し、false は同期を意味します。デフォルトは true

cache: キャッシュするかどうか、true はキャッシュすることを意味し、false はキャッシュしないことを意味し、デフォルトは true です

complete: Ajax ステータス コードが 4 のときにトリガーされるコールバック関数

contentType: リクエスト ヘッダー (ある場合) POST リクエスト、このパラメータは application/x-www-form-urlencoded です

data: Ajax リクエストの送信時に渡されるパラメータ。文字列である必要があります

dataType: 期待される戻り値のタイプ。テキストにすることができます/xml/json データ型

success: Ajax ステータス コードが 4 で、応答ステータス コードが 200 の場合にトリガーされるコールバック関数

type: 送信された http リクエスト (get または post にすることができます)

url: URL アドレスリクエストの説明

3. 同期リクエストをいつ使用するか? ?非同期リクエストをいつ使用するか? ?


1. 同期リクエストとは: (false)

同期リクエストとは、現在のリクエストが発行された後は、リクエストが完了してデータが返されるまで待つ必要があることを意味します。後続のコードが実行されます。これは非常に難しいことです。そこで私たちは列に並び、次の人が引き継ぐ前に前の人が自分の用事を済ませました。つまり、JS コードが現在の AJAX にロードされると、ページ内のすべてのコードのロードが停止し、ページは一時停止されたアニメーションの状態になります。AJAX が完了すると、他の動作が継続されます。コードを入力すると、ページは一時停止アニメーション状態を解除します (つまり、ajax がデータを受信した後、次の関数 2 を実行するときに戻ります)。
2. 非同期リクエストとは: (true)
非同期リクエストとは、リクエストを送信する Ajax がページの読み込みやユーザーの操作に影響を与えないことを意味します。これは同等です。上は 2 行で、それぞれがお互いに影響を与えることなく独自の方向に進みます。
通常、デフォルト値は true、非同期です。 非同期リクエストは、リクエストの長短に関係なく、ユーザーはページ上の他のコンテンツの操作に集中しており、待つ気はありません。

4. PHP にはどのような魔法のメソッドがありますか? ?


マジックメソッドには、

__construct()、クラスコンストラクター

__destruct()、クラスデストラクター

__call()、オブジェクト内のアクセスできないメソッドを呼び出すときに呼び出されます

__callStatic()、呼び出し

__get () 静的モードでアクセスできないメソッドを呼び出す場合は、クラスのメンバー変数を取得する場合は

__set() を呼び出し、クラスのメンバー変数を設定する場合は、アクセスできない場合は

__isset() を呼び出します

__unset( ) は、プロパティにアクセスするために isset() または empty() を呼び出すときに呼び出され、アクセスできないプロパティに対して unset() を呼び出すときに呼び出されます。

__sleep()、serialize()実行時、この関数が最初に呼び出されます

__wakeup()、unserialize()実行時、この関数が最初に呼び出されます

__toString()、クラスが次の場合の応答メソッド文字列として扱われる

__invoke()、関数

__set_state() を呼び出してオブジェクトを呼び出すときの応答メソッド、この静的メソッドは、クラスをエクスポートするために var_export() が呼び出されるときに呼び出されます。

__clone()、オブジェクトのコピーが完了したら

__autoload()を呼び出し、未定義のクラスのロードを試みます

__debugInfo()、必要なデバッグ情報を出力します

5. getメソッドとpostメソッドの簡単な説明


①パラメータの受け渡し方法が異なります

getリクエストはURLの最後にパラメータを渡します

postリクエストは空行リクエストの位置にパラメータを渡します

②渡されるサイズパラメーターが異なります

get リクエストには最大パラメーターが渡されます 値は 2kb です

post リクエストには理論上制限はありませんが、実際のアプリケーションでは php.ini ファイルの影響を受け、通常は 2M です

③パラメータの種類が違います

getリクエストは文字列のみを渡すことができます

Postリクエストは文字列だけでなくバイナリデータも渡すことができます

④セキュリティの違い

相対的に言えば、Postリクエストの方がセキュリティは若干高いですgetリクエスト

のリクエストヘッダパラメータが異なります

6. PHP Word関数


I受信関数

M: 基本モデルクラスをインスタンス化

D: カスタムモデルクラスをインスタンス化

U: URLアドレスをアセンブル

7. 抽象クラスとインターフェースの違いは何ですか? ?


1. インターフェースの使用は、キーワードimplementsを介して行われます。抽象クラスを使用するには、キーワード extends を使用します。もちろん、キーワード extends を使用してインターフェイスを継承することもできます。

2. メンバー変数(クラス静的変数を含む)はインターフェイス内で宣言できませんが、クラス定数は宣言できます。データのカプセル化を実装するために、抽象クラスでさまざまなタイプのメンバー変数を宣言できます

3. インターフェイスにはコンストラクターがありませんが、抽象クラスにはコンストラクターがあります。

4. インターフェイスのメソッドはデフォルトでパブリック型ですが、抽象クラスのメソッドはプライベート、プロテクト、またはパブリックに変更できます。

5. クラスは同時に複数のインターフェースを実装できますが、クラスは 1 つの抽象クラスからのみ継承できます。

共通点: 仕様に使用されます

抽象クラス: インスタンス化できず、継承のみ可能です。抽象クラスには、メソッド本体を持たず、オーバーライドされるために少なくとも 1 つの抽象メソッドが含まれている必要があります。サブクラスによる

インターフェイス: インターフェイス内のメンバー定数とメソッドはすべて public であり、メソッドは public キーワードを記述する必要はありません。インターフェイスは複数の継承を実装できます。

1つ は、クラスのの例ではすることはできません、だけが可能です itsのために彼の親切なの親クラスのを使うためにに来ます。 抽象クラスは、キーワード abstract を通じて宣言されます。 抽象クラスは通常のクラスと似ていますが、両方ともメンバー変数とメンバーメソッドを含みます。この 2 つの違いは、抽象クラスにはメソッドが含まれないことです。このメソッドは本質的にサブクラスによってオーバーライドされます。 抽象メソッドの形式は次のとおりです: abstract function abstractMethod(); インターフェイスは、インターフェイス キーワードを通じて宣言されます。メソッドは、キーワード public を記述する必要はありません。 , インターフェイス内のメソッドにもメソッド本体がありません。インターフェイス内のメソッドも、本質的にはサブクラスによって実装されることを目的としています。 抽象クラスとインターフェイスによって実装される関数は非常に似ています。最大の違いは、インターフェイスが多重継承を実装できることです。アプリケーション内の抽象

とインターフェイスのどちらを選択するかは、特定の実装によって異なります。

サブクラスは extends

を使用して抽象クラスを継承し、サブクラスはimplements を使用してインターフェースを実装します。 8. 名前空間を理解するには? ?

クラスと関数のメソッドの競合を防ぐ

名前空間は、次の 2 つの問題を解決できます:

(1) ユーザーが作成したコードと PHP の内部クラス/関数/定数またはサードパーティのクラス/関数/定数の間の名前の競合。

(2) コードの読みやすさを向上させ、記述されるコードの量を減らすために、非常に長い識別子のエイリアスを作成します。

9. PHP のどのバージョンが名前空間のサポートを開始しますか? ?

ThinkPHP3.2PHP は 5.3.0 以降のバージョンで名前空間のサポートを開始します。

10. PHP にはどのような拡張機能がありますか? ?


PDO: データベースにアクセスするために PHP によって定義された軽量で一貫したインターフェイス。

CURL拡張子

GD拡張子

Memcache

Mysql

11. SVNで競合がある場合はどうすればよいですか? ?

SVN の役割: 共同開発。

統合:

更新:

12. MVC を理解するには? ?

MVC は、アプリケーションの入力、処理、出力の分離を強制するフレームワーク パターンです。 MVC を使用するアプリケーションは、モデル、ビュー、コントローラーの 3 つのコア コンポーネントに分割されます。彼らはそれぞれ独自のタスクを処理します。

MVC は、ソフトウェア設計におけるプログラミング モデルを指します。このモードでは、ビジネス操作、データ表示、およびデータ対話が分割されます。M: 代表は、データベースと対話することです。V: 代表は、特定のビュー (ビュー) です。の主な機能は、ユーザーとデータをやり取りすることです

C: 代表的なのは特定のコントローラー(コントローラー)であり、その主な機能は特定のビジネスロジックを処理することです

それはモデル、ビュー、コントローラーによって完成されますアプリケーションでは、モデル層はデータの提供を担当し、データベースに関連する操作は処理のためにモデル層に渡され、ビュー層は対話型インターフェイスを提供してデータを出力し、コントローラー層はリクエストを受信して​​それらをサーバーに配布します。対応するモデルを処理し、表示するビュー レイヤを呼び出します。

13. 製品テーブルにはどのようなフィールドがありますか? ?

商品id、商品名、商品番号、商品カテゴリーid、相場、当店価格、商品サムネイル、商品サムネイル、売れ筋かどうか、1は売れ筋、0はいいえ、おすすめかどうか、1推奨を意味します、0 は非推奨を意味します、売れ筋かどうか 1 は新製品を意味します 0 はそうではありません、時間の追加、製品が削除されたかどうかを意味します 1 通常 0 削除ステータス、製品がセール中かどうか 1 販売 0 店頭在庫なしステータス、

14. 同じプロダクト ID の属性が異なる場合はどうすればよいですか? ?

プロダクトテーブルの属性はセットとして保存されます。

15. Cookie とセッション


2 つの違いがあります:

1. Cookie は保存されます。クライアント上のユーザー情報、セッションはサーバー側に保存されます。

2. 保存されたコンテンツ: Cookie は文字列を保存し、セッションはオブジェクトを保存します。

3. Cookie はクライアントに長期間保存されます。

4. 通常、Cookie は重要でないユーザー情報を保存し、重要な情報はセッションによって保存されます。

5. Cookie にはセッション Cookie とファイル Cookie の 2 種類があります。ブラウザを閉じると、セッション Cookie データが消えます。ファイル Cookie はデータをファイルに保存し、有効期限が切れていない場合は、ブラウザを再度開いたときにデータが残ります。 。

16. ショッピングカートの実装原則には次の 2 つの状況があります:

1. ユーザーがログインしている場合、データは Cookie に保存されます。 Cookie 内の情報がデータベースに転送されます。


2. ユーザーがログインすると、データはデータベースに直接保存されます。

17. RBAC権限管理

ロールベースのアクセス制御

5つのテーブル: 2つの中間テーブルadmin、role、rule、admin_role、role_rule

3つのテーブル: 1つの中間テーブル

異なる管理者がアクセスできるかどうかを制御するプロセスコードによる特定の方法は、アクセス許可制御です。

RBAC (Role-Based AccessControl、ロールベースのアクセス制御) は、ユーザーがロールを通じて権限に関連付けられることを意味します。簡単に言うと、ユーザーには複数の役割があり、各役割には複数の権限があります。このようにして、「ユーザー-ロール-権限」認可モデルが構築されます。このモデルでは、通常、ユーザーとロールの間、およびロールと権限の間に多対多の関係が存在します。

18. インターフェース開発を理解する方法


まずサードパーティのインターフェースファイルをダウンロードします

19. SMS 認証コードによる SMS 爆撃を防ぐ方法?

JSクライアント認証の認証

携帯電話番号によるテキストメッセージの数の制限(カウンター)

(1)グラフィック認証の追加

悪意のある攻撃者は、自動ツールを使用して「

Dynamic SMS Acquisition」インターフェースを呼び出して送信します動的テキスト メッセージの主な理由は、攻撃者が自動的にインターフェイスに対して大量の呼び出しを行うことができることです。 画像検証コードを使用すると、ツールの自動呼び出しを効果的に防止できます。つまり、ユーザーが「動的 SMS の取得」操作を実行する前に、サーバーはユーザーに検証コードの入力を要求した後、画像検証コードがポップアップ表示されます。この方法は、SMS 爆撃の問題を効果的に解決できます。

安全なグラフィック検証コードは、次の保護要件を満たしている必要があります

-

安全な生成プロセス:画像検証コードはサーバー側で生成および検証される必要があります;

-安全な使用プロセス: 1回限り有効であり、ユーザーの検証リクエストが優先されます。

- 検証コード自体は安全です。識別ツールによって簡単に認識されず、ブルート フォース クラッキングを効果的に防止できます。 グラフィック検証の例:

(2) 単一IP

リクエスト制限

画像検証コードを使用すると、攻撃者が「

ダイナミックSMS」機能の呼び出しを効果的に自動化することを防ぐことができます。 if 攻撃者が画像検証コード検証エラーを無視すると、大量の実行要求がサーバーにさらなる負荷を与え、ビジネス利用に影響を及ぼします。サーバー側で、単一 IP に対する単位時間内のリクエスト数を制限することをお勧めします。ユーザーのリクエスト数 (失敗したリクエストの数を含む) が設定されたしきい値を超えると、その IP へのリクエストは一定期間停止されます。状況が特に深刻な場合は、IP をブラックリストに追加し、この IP からのアクセス要求を禁止することができます。この対策により、1 つの IP アドレスからの大量のリクエストを制限し、攻撃者が同じ IP を介して多数のユーザーを攻撃するのを防ぎ、攻撃の難易度を高め、ビジネスの正常な発展を確保できます。

(3) 送信時間を制限する

ダイナミック テキスト メッセージの繰り返し送信の間隔を制限することをお勧めします。つまり、1 人のユーザーがダイナミック テキスト メッセージの送信をリクエストした後、サーバー側は一定の時間が経過した後にのみ 2 番目のダイナミック テキスト メッセージのリクエストを制限します。ここでは通常 60 秒です)。この機能により、ユーザー エクスペリエンスをさらに保護し、手動攻撃を含む悪意のあるスパム検証 SMS メッセージを回避できます。

動的SMS認証コードの使用プロセスを完了します

20. 製品写真をアップロードするにはどうすればよいですか? ?

21. セッションの有効期間を設定するにはどうすればよいですか? ?

22. 支払いのための同期コールバックと非同期コールバック? ?


特定の同期コールバックと非同期コールバック

同期コールバックの機能: 支払い完了後にユーザーが対応する販売者ページにジャンプできるようにするため(ユーザーの支払い後にユーザーの支払いが正しく処理されることを保証するため)完了しました)

非同期コールバック関数: 販売者がユーザーの支払いを正しく処理することを確認します

23. Alipay の支払いプロセス?


1. Alipay アカウント情報を申請し、対応する APPID、公開キー (Alipay に渡します)、秘密キー (自分で保管してください) を取得します

2. 公式ドキュメントをダウンロードし、ローカルでデモ テストを構築します。 config.php に APPID、同期および非同期コールバック アドレス、Alipay 秘密キー、その他の情報を設定します。

3. バックグラウンドアプリケーションを作成します

4. 決済機能を実装するための特別なコードを使用します

24. Alipay の非同期コールバックの役割は何ですか? ?


非同期コールバック関数: 販売者がユーザーの支払いを正しく処理することを確認します

1. 同期が実行されず、非同期の一方的なリクエストが行われることを確認します。 ()

2. 注文のドロップの問題を解決します

3. 比較的安全

同期コールバック関数: ユーザーが支払いを完了すると、対応する販売者ページにジャンプできることを認識します (ユーザーの支払いが確実に行われるようにするため)。ユーザーの支払いが完了した後に正しく処理されます) 処理操作) (get メソッド)

非同期コールバック関数: 販売者がユーザーの支払いを正しく処理したことを確認します (post メソッド)

25. 商品モジュールの多次元属性

26. よく使う Linux コマンド

ファイルの検索:

find

-name ファイル名に従って検索

-group: ファイルが属するグループに従って検索

-user: 所有者に従って検索データの取得に使用されるファイルの

locateコマンド

locateファイル名

dfコマンド: ディスク情報の表示

-l : ローカルディスクの表示ディスク情報

-h : 1024でディスク情報を表示

-H : 1000ベースでディスク情報を表示

-T : ディスクフォーマットを表示情報

-t : 指定された形式でディスク情報を表示します

cd ユーザー名:

cd に入力 ~: ホームに戻る

yy: コピー p: ペースト

vim ファイル名: ファイルを表示

27、hppt のステータス コード? ?

1, 301 MovedPermanently: 要求されたリソースは新しい場所に永続的に移動されました。このリソースへの今後の参照では、この応答で返されたいくつかの URI の 1 つを使用する必要があります。 永続的なリダイレクト

2. 302 一時的に移動: 要求されたリソースは、別の URI からの要求に一時的に応答します。このようなリダイレクトは一時的なものであるため、クライアントは今後も元のアドレスにリクエストを送信し続ける必要があります

3. 404 Not Found: リクエストは失敗し、リクエストされたリソースはサーバー上に見つかりませんでした。この状況が一時的なものなのか永続的なものなのかをユーザーに伝える情報はありません

4. 200 OK: リクエストは成功し、リクエストで予期された応答ヘッダーまたはデータ本体がこの応答とともに返されます。このステータス コードは


で、通常のステータスを意味します。

200 (成功): サーバーはリクエストを正常に処理しました。通常、これは、サーバーがリクエストされた Web ページを提供したことを意味します
201 (作成): リクエストは成功し、サーバーは新しいリソースを作成しました
202 (受け入れ): サーバーはリクエストを受け入れましたが、まだ処理されていません
203 (非認証情報): サーバー リクエストは正常に処理されましたが、返された情報は別のソースからのものである可能性があります
204 (コンテンツなし): サーバーはリクエストを正常に処理しましたが、コンテンツが返されませんでした
205 (コンテンツのリセット):サーバーはリクエストを正常に処理しましたが、コンテンツは返されませんでした 任意のコンテンツ
206 (部分的なコンテンツ): サーバーは GET リクエストの一部を正常に処理しました
404 (見つかりません): サーバーはリクエストされた Web ページを見つけることができません
500 (内部サーバー エラー) ): サーバーでエラーが発生し、リクエストを完了できませんでした

28、require と include


require() ステートメントのパフォーマンスは include() と同様で、両方とも指定されたファイルをインクルードして実行します。

違いは、include() ステートメントの場合は、ファイルを実行するたびに読み取られて評価される必要があるのに対し、require() ステートメントの場合は、エラーが報告されても後続のコードの実行が妨げられないことです。 1 回のみ処理されます (実際には、ファイルの内容が require() ステートメントに置き換わります)。これは、コードが複数回実行される可能性がある場合は、require() を使用する方が効率的であることを意味します。一方、コードを実行するたびに異なるファイルを読み取る場合、または一連のファイルを反復処理するループがある場合は、 include() ステートメントを使用します

使用時にロードするには include() を使用する必要があります

始まり

29. Linux システムで PHP プログラム拡張機能をコンパイルするにはどうすればよいですか? ?

1. ソフトウェア圧縮パッケージを見つけて解凍します

2. make &&make install

4. Apache を再起動します

操作は複数のコンポーネントで構成され、それらが全体を形成します。操作はすべて成功するか、すべて失敗して元の状態に戻ります。

SQL ステートメントを実行する前に、最初にトランザクション開始を実行します。これにより、トランザクション (トランザクションの開始点) が開きます。次に、複数の SQL ステートメントを実行し、最後にコミットとは、送信、つまり複数の SQL ステートメントを終了します。トランザクション内 ステートメントの効果はデータベースに永続化されます。またはロールバック、つまりロールバックを意味します。つまり、トランザクションの開始点にロールバックすると、以前の操作はすべて取り消されます。

トランザクションの 4 つの主要な特性 (

ACID)

原子性: トランザクション内のすべての操作は、既約の原子単位です。トランザクション内のすべての操作は、成功するか失敗するかのどちらかです。

一貫性: トランザクションの実行後、データベースの状態は他のビジネス ルールとの一貫性を保ちます。たとえば、送金ビジネスでは、取引が正常に実行されたかどうかに関係なく、送金に関与した 2 つの口座の残高の合計は変化しないはずです。

分離: 分離とは、同時操作において、各同時トランザクションが互いに干渉しないように、異なるトランザクションを分離する必要があることを意味します。

耐久性: トランザクションが正常に送信されると、トランザクション内のすべてのデータ操作がデータベースに永続化される必要があります。たとえトランザクションが送信された直後にデータベースがクラッシュした場合でも、データベースの再起動時に何らかのメカニズムが確保される必要があります。

31.

PHP は現在の時刻を取得します time()

PHP は文字列をインターセプトします: substr 関数

PHP は文字列に部分文字列があるかどうかを調べます:

32. 関連する 5 つの配列処理関数?

In_array: 配列に要素が存在するかどうかを判定します。

array_reverse() 配列内の要素を反転します。戻り値は巻き戻し後の配列です。

array_splice(array1,start,length,array2) は配列から対応する要素を削除し、新しい要素で置き換えます

array_push() (プッシュ) は 1 つ以上の要素を配列の末尾に追加します

array_pop( ) (ポップ) 配列から最後の要素を削除します

33. クロスドメインリクエストの方法は何ですか? ?

JSONP

CORS

34. ストレージ エンジンはいくつありますか?違いは何ですか? ?

Mysiam vs. innodb

MyISAM タイプはトランザクション処理などの高度な処理をサポートしませんが、InnoDB タイプはサポートします。

MyISAM 型テーブルはパフォーマンスを重視しており、実行速度は InnoDB 型よりも高速ですが、トランザクション サポートは提供されていません。一方、InnoDB はトランザクション サポートと外部キーなどの高度なデータベース機能を提供します。

インデックスの作成: アラート tabletablename インデックス (`フィールド名`) を追加します

35。Redis のデフォルトのポート番号?データの種類は?



6379

文字列、ハッシュ、リスト (リンクされたリスト)、セット (セット)、zset (順序付きセット)

36. Redis の実践的なケース - スナップアップ フラッシュ セール、カウンター、推奨事項、コレクションのケース

フラッシュセール:

Redisのリストリンクリストとポップ操作を使用し、同時に多くのユーザーが到着した場合でも、順番に実行されます

1. 商品テーブルの在庫をキューに保存します

。 2. 急ぎ購入を開始し、在庫のキャッシュサイクルを設定します

3. クライアントは注文操作を実行し、注文する前に Redis キューの在庫を決定します

Counter:

37 左のリンクの違いは何ですか。 MySQL の正しいリンクは? ?

左結合: 左側のテーブルに基づいて、右側のテーブルに一致するレコードがない場合、左側のテーブルのレコードがクエリ結果に表示されます。

右結合: 右側のテーブルに基づいて、左側のテーブルに一致するレコードがない場合、右側のテーブルのレコードがクエリ結果に表示されます。

内部結合: 2 つのテーブルのステータスは同等であり、結合条件を満たすレコードのみがクエリ結果に表示されます。

38. memcache のデフォルトのポート番号は何ですか? ? 、Memcache と Redis の違い??

27017,28017


Memcache キャッシュはハッシュ テーブルを使用してすべてのデータをメモリに保存し、各データはキーと値で構成され、各キーは一意です。特定の値にアクセスしたい場合、まず値を見つけてから結果を返します。Memcache は LRU アルゴリズムを使用して期限切れのデータを徐々に消去します

39。どのデータベース最適化から始めるべきですか?どうやってするの? ?

1. データベースを設計する

2. インデックスを作成する

4. キャッシュする

41. ?

1.商品を追加すると商品の在庫が増えます。在庫テーブルには、さまざまな属性の


が追加されます 2. 注文の支払いが成功すると、在庫は減ります

3. 注文の支払いが失敗すると、在庫は減りません

4. 顧客が返品すると、在庫は増加します

42. MySQL クエリを最適化します

1. 完全なテーブル クエリを回避し、対応するフィールドのインデックスを作成します

2. 長すぎるクエリ ステートメントを回避し、バッチでクエリを実行します。

3. where の後に関数操作はできません

4. 左の原則の最初のフィールドにはインデックスが必要です

5. where の後にインデックスを作成し、グループ化します

関連する推奨事項:

PHP の面接の質問収集と共有

PHP インタビューの質問と回答

以上がPHP 面接で聞かなければならない面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。