MySQLで複合インデックスを使用する必要があるのはいつですか?
複合インデックスは、サブクエリを使用しているときに使用できます。複合インデックスを使用する利点は次の場合です。
- 参加
- フィルタリング
- 選択
インデックスの構文は次のとおりです。
index(column_name1,column_name2,column_name3,column_name4,............................N)
最初にテーブルを作成し、その中にインデックスを設定しましょう。
mysql> create table MultipleIndexDemo - > ( - > id int, - > FirstName varchar(100), - > LastName varchar(100), - > Address varchar(200), - > index(id,LastName,Address) - > ); Query OK, 0 rows affected (0.57 sec)
インデックスが正常に作成されたかどうかを確認します。
mysql> show index from MultipleIndexDemo;
以下は出力です。
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | multipleindexdemo | 1 | id | 1 | id | A | 0 | NULL | NULL | YES | BTREE | | | YES | | multipleindexdemo | 1 | id | 2 | LastName | A | 0 | NULL | NULL | YES | BTREE | | | YES | | multipleindexdemo | 1 | id | 3 | Address | A | 0 | NULL | NULL | YES | BTREE | | | YES | +-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 3 rows in set (0.18 sec)
-
スマートポインタとは何ですか?C ++でいつ使用する必要がありますか?
スマートポインタは、「raw」(または「bare」)C++ポインタをラップするクラスです。ポインタが指すリソースを管理するために使用されます。たとえば、そのメモリ位置への参照が失われた場合。ガベージコレクターのように機能します。複数のスマートポインタタイプがあります。 ほとんどの場合、スマートポインタを使用する必要があります。これは、ポインタを使用する際の主な問題点が手動のメモリ管理とメモリリークであるためです。スマートポインタは、これらの両方を取り除こうとします。これらのいずれも実際には実行したくない場合は、スマートポインターを使用する必要があります。
-
C ++で「友達」を使用する必要があるのはいつですか?
クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { d