Inhaltsverzeichnis
存储引擎及事务概念
一、存储引擎
Heim Datenbank MySQL-Tutorial 小贝_mysql存储引擎及事务概念_MySQL

小贝_mysql存储引擎及事务概念_MySQL

Jun 01, 2016 pm 12:59 PM
事务 概念

存储引擎及事务概念

简要:
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元

用程序描述下这个过程

 

Nach dem Login kopieren
Nach dem Login kopieren

<!--?php
$userA = $momeyA;
$userB = $momeyB;
if( $moneyA < 500 )
{
return false;
}
$sqlA = "update user set money=money-500 where name=&#39;userA&#39;";   //步骤A
$resultA = $db--->query($sqlA);
if( $resultA )
{
$sqlB = "update user set money=money+500 where name=&#39;userB&#39;";	//步骤B
$resultB = $db->query($sqlB);	
if( $resultB )
{
	return true;
}else
{
$sqlA = "update user set money=money+500 where name=&#39;userA&#39;";	//步骤C
$resultA = $db->query($sqlA);
return false;
}
}
$sqlA = "update user set money=money+500 where name=&#39;userA&#39;";	//步骤D
$resultA = $db->query($sqlA);
return false;
?>
Nach dem Login kopieren

Nach dem Login kopieren
Nach dem Login kopieren
 

 

从事务的角度看:

1、在转账过程中,出现有误,则该错误对双方而言,是没有影响的。即不可能因为某个错误,导致用户A白白减少500,而用户B莫名其妙多了500

2、在转账过程中,用户A是不可能看到自己的卡余额减下500,而用户B也是无法看到自己增加500元,因为转账操作还未结束。

3、单单从这个过程,用户A与用户B的总金额是不变的。只不过是一方减少,另一方增加

总结下事务的几个特性

a、 原子性:一组操作,要么都成功执行,要么都不执行

b、 隔离性:在所有的操作没有执行完毕之前,其它会话不能够看到中间改变的过程

c、 一致性:事务发生前和发生后,数据的总额依然匹配

d、 持久性:事务产生的影响不能够撤销

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Oct 05, 2023 am 08:46 AM

Lockwaittimeoutexceeded;tryrestartingtransaction – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Bei Verwendung der MySQL-Datenbank kann es manchmal zu einem häufigen Fehler kommen: Lockwaittimeoutexceeded;tryrestartingtransaction. Dieser Fehler weist auf eine Transaktionswartezeitüberschreitung hin. Dieser Fehler tritt normalerweise auf, wenn

Was bedeutet das Metaverse-Konzept? Was ist das Metaverse-Konzept? Was bedeutet das Metaverse-Konzept? Was ist das Metaverse-Konzept? Feb 22, 2024 pm 03:55 PM

Das Metaverse ist eine Scheinwelt, die Technologie nutzt, um die reale Welt abzubilden und mit ihr zu interagieren. Analyse 1 Metaverse [Metaverse] ist eine Scheinwelt, die technologische Methoden zur Verknüpfung und Erstellung voll ausnutzt und die reale Welt abbildet und mit ihr interagiert. Es ist ein Datenlebensraum mit dem neuesten sozialen Entwicklungssystem. Das zweidimensionale Universum ist im Wesentlichen eine virtuelle Technologie und ein digitaler Prozess der realen Welt, der eine umfassende Transformation der Inhaltsproduktion, des Wirtschaftssystems, des Kundenerlebnisses und der Inhalte der physischen Welt erfordert. 3 Der Entwicklungstrend des Metaversums verläuft jedoch schrittweise. Es entsteht schließlich durch die kontinuierliche Kombination und Weiterentwicklung vieler Tools und Plattformen mit der Unterstützung gemeinsamer Infrastruktur, Standards und Protokolle. Ergänzung: Woraus besteht das Metaversum? 1 Das Metaversum besteht aus Meta und Vers, Meta ist Transzendenz und V

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung Mar 16, 2024 am 11:33 AM

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung. In der MySQL-Datenbank ist eine Transaktion eine Reihe von SQL-Anweisungen. Entweder sind alle Ausführungen erfolgreich oder alle Ausführungen schlagen fehl, wodurch die Konsistenz und Integrität der Daten sichergestellt wird. In MySQL können Transaktionen in automatische Übermittlung und manuelle Übermittlung unterteilt werden. Der Unterschied liegt im Zeitpunkt der Transaktionsübermittlung und im Umfang der Kontrolle über die Transaktion. Im Folgenden wird der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung ausführlich vorgestellt und spezifische Codebeispiele zur Veranschaulichung gegeben. 1. Automatisch in MySQL übermitteln, wenn es nicht angezeigt wird

Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Dec 29, 2023 am 09:14 AM

Verstehen Sie die Hauptfunktionen von SpringMVC: Um diese wichtigen Konzepte zu beherrschen, sind spezifische Codebeispiele erforderlich. SpringMVC ist ein Java-basiertes Framework für die Entwicklung von Webanwendungen, das Entwicklern beim Aufbau flexibler und skalierbarer Strukturen durch das Architekturmuster Model-View-Controller (MVC) hilft. Internetanwendung. Wenn wir die wichtigsten Funktionen von SpringMVC verstehen und beherrschen, können wir unsere Webanwendungen effizienter entwickeln und verwalten. In diesem Artikel werden einige wichtige Konzepte von SpringMVC vorgestellt

Erfahren Sie mehr über die Grundlagen und Funktionen von Gunicorn Erfahren Sie mehr über die Grundlagen und Funktionen von Gunicorn Jan 03, 2024 am 08:41 AM

Grundlegende Konzepte und Funktionen von Gunicorn Gunicorn ist ein Tool zum Ausführen von WSGI-Servern in Python-Webanwendungen. WSGI (Web Server Gateway Interface) ist eine von der Python-Sprache definierte Spezifikation und wird zur Definition der Kommunikationsschnittstelle zwischen Webservern und Webanwendungen verwendet. Gunicorn ermöglicht die Bereitstellung und Ausführung von Python-Webanwendungen in Produktionsumgebungen durch Implementierung der WSGI-Spezifikation. Die Funktion von Gunicorn ist es

Einführung und Kernkonzepte von Oracle RAC Einführung und Kernkonzepte von Oracle RAC Mar 07, 2024 am 11:39 AM

Einführung und Kernkonzepte von OracleRAC (RealApplicationClusters) Da die Menge an Unternehmensdaten weiter wächst und die Nachfrage nach Hochverfügbarkeit und hoher Leistung immer wichtiger wird, wird die Datenbank-Cluster-Technologie immer wichtiger. OracleRAC (RealApplicationClusters) soll dieses Problem lösen. OracleRAC ist eine von Oracle eingeführte hochverfügbare und leistungsstarke Cluster-Datenbanklösung.

PHP PDO-Tutorial: Ein Leitfaden für Fortgeschrittene von den Grundlagen bis zur Beherrschung PHP PDO-Tutorial: Ein Leitfaden für Fortgeschrittene von den Grundlagen bis zur Beherrschung Feb 19, 2024 pm 06:30 PM

1. Einführung in PDO PDO ist eine Erweiterungsbibliothek von PHP, die eine objektorientierte Möglichkeit zum Betrieb der Datenbank bietet. PDO unterstützt eine Vielzahl von Datenbanken, einschließlich MySQL, Postgresql, Oracle, SQLServer usw. PDO ermöglicht Entwicklern die Verwendung einer einheitlichen API zum Betrieb verschiedener Datenbanken, wodurch Entwickler problemlos zwischen verschiedenen Datenbanken wechseln können. 2. PDO stellt eine Verbindung zur Datenbank her. Um PDO zum Herstellen einer Verbindung zur Datenbank zu verwenden, müssen Sie zunächst ein PDO-Objekt erstellen. Der Konstruktor des PDO-Objekts erhält drei Parameter: Datenbanktyp, Hostname, Datenbankbenutzername und Passwort. Der folgende Code erstellt beispielsweise ein Objekt, das eine Verbindung zu einer MySQL-Datenbank herstellt: $dsn="mysq

Analyse von Lösungen für Transaktionsmanagementprobleme, die bei der Entwicklung der MongoDB-Technologie auftreten Analyse von Lösungen für Transaktionsmanagementprobleme, die bei der Entwicklung der MongoDB-Technologie auftreten Oct 08, 2023 am 08:15 AM

Analyse von Lösungen für Transaktionsmanagementprobleme, die bei der Entwicklung der MongoDB-Technologie auftreten. Da moderne Anwendungen immer komplexer und umfangreicher werden, werden auch die Anforderungen an die Transaktionsverarbeitung für Daten immer höher. Als beliebte NoSQL-Datenbank verfügt MongoDB über eine hervorragende Leistung und Skalierbarkeit bei der Datenverwaltung. Allerdings weist MongoDB eine relativ schwache Datenkonsistenz und Transaktionsverwaltung auf, was die Entwickler vor Herausforderungen stellt. In diesem Artikel werden wir die bei der MongoDB-Entwicklung auftretenden Transaktionsmanagementprobleme untersuchen und einige Lösungen vorschlagen.

See all articles