[データベース] MySQLの基本

そして、労働組合のすべての差分1.union

  • 労働組合は、同じ結果アウトセット処理ルールをもたらすであろう
  • 組合すべての結果セットが処理されません、同じ結果が配置されていません

そして2.preparedStatementの差の声明

  • 代わりに、ステートメントを使用して任意の時間にPreparedStatement
  • プリコンパイル済みのPreparedStatementは、SQLインジェクションを防ぎます
  • 効率を向上させることができたPreparedStatement複数回使用

3.データベースの3つのパラダイム

  • 重複する列(アトミック)なしで最初のパラダイム(1NF)は、各列が不可分アトミックデータ項目、データ項目、配列、レコードのない非アトミックセットです。
  • 唯一の主キーの一部と関連するデータがある場合は第2正規形(2NF)主キーに完全に依存特性は、それが第二のパラダイムを満たしていません。
  • それぞれ独立して他の非キー列の第3のパラダイム(3NF)は、非キー列の非一次性の他の特性に依存しません。

4.Mysql行レベルのロック

MYISAMエンジンは、テーブルレベルのロックをサポートし、InnoDBエンジンは、以下の内容もINNODB行レベルのロッキングのために展開され、行レベルのロックをサポートしています。

⑴共有ロック

また、ロックとして知られ、読まロック操作が作成されます。他のユーザーが同時にデータを読み取ることができますが、何のトランザクションがデータを変更することはできません。
プラスへのトランザクションデータTがロックを共有している場合、他のトランザクションは唯一シェアプラスロックは排他ロックを追加することはできません。

SELECT ... LOCK IN SHARE MODE;

他のスレッドプラス排他ロックがブロックされている場合我々は、データ共有ロックのすべての部分をチェックアウトします。

⑵排他ロック

また、書き込みロックとして知られ、プラス排他ロックへのトランザクションデータT場合、他のトランザクションは、いかなる種類のロックに追加することはできません。どちらも、彼のロックを読んで、だけでなく、データを変更するトランザクションの行データを承認しました。

SELECT ... FOR UPDATE;

UPDATEのクエリ後に増加、MySQLはクエリ結果の他のスレッドのないラインが存在しない場合、ロックはそれ以外の場合はブロックされ、排他的ロックを正常に適用することができるときセットを排他的に使用され、各列の結果プラス排他ロックを照会します。

取引の基本的な要素(ACID特性)

  • アトミック(原子性):トランザクションの開始後にすべての操作、どちらかのすべてが行われ、またはすべてがそうしていないが、中央部で立ち往生することはできません。エラーがトランザクションの実行中に発生し、トランザクションの開始前の状態にロールバックされます、すべての操作は次のように起こったことはありません。そのトランザクションは、これまでに原子高校の化学のように、不可分の全体である物質の基本単位です。
  • 一貫性(一貫性):最初とトランザクションの終了、データベースの整合性制約は、前に破損していません。例えば、Aがお金を控除することはできませんBへの転送は、Bは受信しませんでした。
  • 分離(隔離):同時に、異なるトランザクション間で互いに干渉することなく同じデータのためにのみ1つのトランザクション要求。例えば、Aは、Bがカードにお金を転送することはできません、銀行カードからお金を引き出すプロセスAの終了前にお金を引き出すことです。
  • (耐久性)永続:トランザクションの完了後、データベースに対するすべての更新がデータベースに保存されますトランザクションはロールバックすることはできません。

6.トランザクションの同時実行の問題

  • 二つのトランザクションT1とT2のためのダーティリードは、T1、T2は、読みが、まだフィールドを提出されていない更新されています。その後、ロールバックT2、T1は一時的の内容を読み取り、有効であるとき、
  • 非反復可能読み取りは、トランザクションデータに二度同じ行を読んで意味するが、これらの二つは同じ読み出しデータはありません
  • ファントムは、システム管理者の最後は変更があることがわかったとき、グレードABCDE特定のスコアからのすべての学生のためのデータベースシステム管理者の成果は変更しましたが、システム管理者Bが、現時点では特定のレコードのスコアを挿入する読みレコードは幻覚として起こったちょうど同じように、一晩変更しないで、これはファントム読み取りと呼ばれています。

7.トランザクション分離レベル

  • トランザクションがコミットされていないトランザクションBを読んで非コミット読み取り(READ UNCOMMITTED)トランザクション
  • コミット読み取り(コミット読み取り)トランザクショントランザクションBのみ(デフォルトなどORACLEを、)コミット読むことができます
  • 同じトランザクションでの反復可能読み取り(反復可能読み取り)クエリは、トランザクションの一貫性の開始時間です
  • シリアライズ(直列化)あなたが他の人を読んだときに見ることができない、トランザクションのシリアル化を実行します

8.データベースのクエリ言語のカテゴリー

⑴DQL(データクエリ言語)

FROM句、WHERE句SELECT句からのデータのクエリ言語DQL、

⑵DML(データ操作言語)

データ操作言語DMLは、INSERT、UPDATE、DELETEと、

⑶DDL(データ定義言語)

DDLデータ定義言語は、データベース-----テーブル、ビュー、内のさまざまなオブジェクトを作成するために使用さ
指数、同義語、およびその他のようなクラスタを:
TABLE / VIEWのCREATE / INDEX / SYN / CLUSTER
DDL操作は劣性提出されています!ロールバックすることはできません

⑷DCL(データ制御言語)

デフォルトでは、データ制御言語(DCL)データベースユーザーまたはロールの権限文を設定または変更するために使用され、これらの記述はGRANTが含まれ、DENY、REVOKEステートメントおよびその他の、唯一のシステム管理者、dbcreatorの、db_ownerロールまたは同等のdb_securityadminの役割のメンバーだけ請求は、データ制御言語を行います。

9.mysqlエクスポートテーブル構造

 sudo mysqldump -h10.1.210.15 -u用户名 -p密码 数据库名 device_bind_info>device_bind_info.sql
 格式:
 sudo mysqldump -h地址 -u用户名 -p密码 数据库名 表名>导出sql

10.楽観的と悲観的ロック

  • データをピックアップして考え、誰かが変更されていないたびに、それはロックされませんが、更新はデータを更新しに行きませんでした。この時間の間にどのような他人を判断する時期は、バージョン番号のメカニズムを使用することができます。オプティミスティック・ロックは、読むためのアプリケーションの種類に適しており、そのデータベースは、実際に同じように提供されている同様のwrite_condition楽観的ロック機構を提供する場合は、スループットを向上させることができます。
  • 人々は、このデータを取りたいので、悲観的ロック他の誰かがデータをピックアップするたびに、彼女はデータを取ったたびにロックされ、修正されると考えられている、それはロックを得たまでブロックします。伝統的なリレーショナルデータベースは内部ロックを書き込み、ロックを読み取り、等行ロック、表ロック、などのこのロック機構の多くを使用するように、第1の動作を実行する前にロックされています。
  • ロックの他の種類は、下の書き込みに矛盾が本当に稀である、すなわち、比較的少数の例を、適用ロッキング楽観として、良い選択肢であると見なすことができない、長所と短所を持っているので、オーバーヘッドのロックを保存することができますプラスシステム全体のスループットに大きな。しかし、頻繁に衝突すると、上位のアプリケーションは、例えば、再試行され続けるではなく、性能を低下させるので、悲観的ロックは、この場合にはより適切である使用します。

おすすめ

転載: blog.csdn.net/cheidou123/article/details/93905153