小贝_mysql存储引擎及事务概念_MySQL
存储引擎及事务概念
简要:
1、什么是存储引擎
2、什么是事务
一、存储引擎
通俗地讲就是存储和管理数据的方式
形象例子:
某处地方的自行车管理员:李某,张某。每天都有很多人来存取自行车。李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车。取车时则要交管理费。也不检查取的是否是对方自己的车。相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息。当人来取车时,张某还要小心核对,人与车的特征是否对应。
从上述例子可知:
a、从效率的角度来看: 李某比张某快,因为其不用进行校对
b、从安全性的角度来看: 张某比李某要安全,因为其进行了校对。
总结: 实际上,mysql的存储引擎也是这样工作,每种存储引擎都有自身的存取方式,因此在选择上,应该根据实际情况来定。
1、如何查看mysql的引擎
mysql> show engines;
2、常用的存储引擎myisam与innodb的区别
2.1、myisam: 批量插入速度快,不支持事务,表锁
innodb:批量插入速度相对较慢,支持事务,行锁
二、事务
通俗地理解,指一组操作,要么都成功执行,要么都不执行。
例如:
用户A给用户B转账500元
先分析下这个流程:
1、判断用户A的卡余额是否大于500元,否则,则无法进行转账操作
2、在满足大于500元的基础上,用户A给用户B进行转账
3、转账操作成功,则用户A的卡余额减去500元,用户B加上500元
用程序描述下这个过程
<!--?php $userA = $momeyA; $userB = $momeyB; if( $moneyA < 500 ) { return false; } $sqlA = "update user set money=money-500 where name='userA'"; //步骤A $resultA = $db--->query($sqlA); if( $resultA ) { $sqlB = "update user set money=money+500 where name='userB'"; //步骤B $resultB = $db->query($sqlB); if( $resultB ) { return true; }else { $sqlA = "update user set money=money+500 where name='userA'"; //步骤C $resultA = $db->query($sqlA); return false; } } $sqlA = "update user set money=money+500 where name='userA'"; //步骤D $resultA = $db->query($sqlA); return false; ?>
从事务的角度看:
1、在转账过程中,出现有误,则该错误对双方而言,是没有影响的。即不可能因为某个错误,导致用户A白白减少500,而用户B莫名其妙多了500
2、在转账过程中,用户A是不可能看到自己的卡余额减下500,而用户B也是无法看到自己增加500元,因为转账操作还未结束。
3、单单从这个过程,用户A与用户B的总金额是不变的。只不过是一方减少,另一方增加
总结下事务的几个特性
a、 原子性:一组操作,要么都成功执行,要么都不执行
b、 隔离性:在所有的操作没有执行完毕之前,其它会话不能够看到中间改变的过程
c、 一致性:事务发生前和发生后,数据的总额依然匹配
d、 持久性:事务产生的影响不能够撤销

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Lockwaittimeoutexceeded;tryrestartingtransaction - MySQL エラーの解決方法: トランザクション待機タイムアウト。MySQL データベースを使用すると、一般的なエラーが発生することがあります: Lockwaittimeoutexceeded;tryrestartingtransaction。このエラーは、トランザクション待機タイムアウトを示します。このエラーは通常、次の場合に発生します。

メタバースは、テクノロジーを使用して現実世界をマッピングし、相互作用する幻想的な世界です。分析1 メタバース[Metaverse]は、テクノロジー手法を駆使して現実世界と連携・創造し、地図化・相互作用する幻想世界であり、最新の社会開発システムを備えたデータ居住空間です。 2 次元の世界は本質的には現実世界の仮想テクノロジーおよびデジタル プロセスであり、コンテンツ制作、経済システム、顧客エクスペリエンス、および物理世界のコンテンツの多くの変革が必要です。 3 ただし、メタバースの発展傾向は緩やかであり、共有インフラストラクチャ、標準、プロトコルのサポートによる多くのツールとプラットフォームの継続的な組み合わせと進化によって最終的に形成されます。補足: メタバースは何で構成されていますか? 1 メタバースはメタとバースで構成され、メタは超越、V は

MySQL トランザクション処理: 自動送信と手動送信の違い。MySQL データベースでは、トランザクションは一連の SQL ステートメントです。すべての実行が成功するか、すべての実行が失敗するかのいずれかで、データの一貫性と整合性が保証されます。 MySQL では、トランザクションは自動送信と手動送信に分けられ、その違いはトランザクション送信のタイミングとトランザクションの制御範囲にあります。以下では、自動送信と手動送信の違いを詳しく紹介し、具体的なコード例を示して説明します。 1. MySQL が表示されない場合は自動的に送信する

SpringMVC の主要な機能を理解する: これらの重要な概念を習得するには、特定のコード例が必要です。 SpringMVC は、開発者が Model-View-Controller (MVC) アーキテクチャ パターンを通じて柔軟でスケーラブルな構造を構築するのに役立つ Java ベースの Web アプリケーション開発フレームワークです。ウェブアプリケーション。 SpringMVC の主要な機能を理解して習得すると、Web アプリケーションをより効率的に開発および管理できるようになります。この記事では、SpringMVC の重要な概念をいくつか紹介します。

Gunicorn の基本概念と機能 Gunicorn は、Python Web アプリケーションで WSGI サーバーを実行するためのツールです。 WSGI (Web Server Gateway Interface) は Python 言語で定義された仕様で、Web サーバーと Web アプリケーション間の通信インターフェイスを定義するために使用されます。 Gunicorn では、WSGI 仕様を実装することで、Python Web アプリケーションを運用環境にデプロイして実行できるようになります。ガニコーンの機能は次のとおりです。

OracleRAC (RealApplicationClusters) の概要と中心となる概念 企業データの量が増加し続け、高可用性と高パフォーマンスに対する需要がますます顕著になるにつれて、データベース・クラスタ・テクノロジの重要性がますます高まっています。 OracleRAC (RealApplicationClusters) は、この問題を解決するように設計されています。 OracleRAC は、Oracle が発売した高可用性、高性能のクラスタ データベース ソリューションです。

1. PDO の概要 PDO は、データベースを操作するためのオブジェクト指向の方法を提供する PHP の拡張ライブラリです。 PDO は、Mysql、postgresql、oracle、SQLServer などのさまざまなデータベースをサポートします。 PDO を使用すると、開発者は統合 API を使用してさまざまなデータベースを操作できるため、さまざまなデータベースを簡単に切り替えることができます。 2. PDO はデータベースに接続します PDO を使用してデータベースに接続するには、まず PDO オブジェクトを作成する必要があります。 PDO オブジェクトのコンストラクターは、データベース タイプ、ホスト名、データベース ユーザー名、およびパスワードの 3 つのパラメーターを受け取ります。たとえば、次のコードは、mysql データベースに接続するオブジェクトを作成します。 $dsn="mysq

MongoDB テクノロジー開発で遭遇するトランザクション管理問題の解決策の分析 最新のアプリケーションがますます複雑かつ大規模になるにつれて、データのトランザクション処理要件もますます高くなっています。 MongoDB は、人気のある NoSQL データベースとして、データ管理において優れたパフォーマンスとスケーラビリティを備えています。ただし、MongoDB はデータの一貫性とトランザクション管理が比較的弱く、開発者にとって課題となっています。この記事では、MongoDB 開発で遭遇するトランザクション管理の問題を調査し、いくつかの解決策を提案します。
