mysql transaction processing
Not all engines support transaction processing As mentioned in Chapter 21, MySQL supports several basic database engines. As discussed in this chapter, not all engines support explicit transaction management. MyISAM and InnoDB are the two most commonly used engines. The former does not support explicit transaction management, while the latter does. This is why the sample tables used in this book were created to use InnoDB rather than the more commonly used MyISAM. If your application requires transaction processing capabilities, be sure to use the correct engine type.
Transaction processing can be used to maintain the integrity of the database. It ensures that batches of MySQL operations are either completely executed or not executed at all.
Relational database design stores data in multiple tables, making the data easier to manipulate, maintain, and reuse. Without getting into the how and why of relational database design, well-designed database schemas are all relational to some extent.
The orders table used before is a good example. Orders are stored in two tables, orders and orderitems: orders stores the actual order, while orderitems stores the items ordered. The two tables are related to each other using a unique ID called the primary key. These two tables are in turn related to other tables containing customer and product information.
The process of adding an order to the system is as follows:
(1) Check whether the corresponding customer exists in the database (query from the customers table), if not, add him /she.
(2) Retrieve the customer's ID.
(3) Add a row to the orders table and associate it with the customer ID.
(4) Retrieve the new order ID assigned in the orders table.
(5) Add a row to the orderitems table for each item ordered, and associate it with the orders table by retrieving the
ID (and associate it with the products table by the product ID).
Now, suppose that some kind of database failure (such as disk space exceeded, security restrictions, table locks, etc.) prevents the completion of this process. What happens to the data in the database?
If the failure occurs after the customer is added and before the orders table is added, there will be no problem. It is perfectly legal for some customers to not have orders. When the process is re-executed, the inserted customer record will be retrieved and used. You can effectively start the process from where it went wrong.
But what if the failure occurs after the orders row is added but before the orderitems row is added? Now, there is an empty order in the database.
Even worse, if the system fails in the middle of adding the orderitems line. The result is that there are incomplete orders in the database and you don't know about it.
How to solve this problem? Here you need to use transaction processing. Transaction processing is a mechanism used to manage MySQL operations that must be performed in batches to ensure that the database does not contain incomplete operation results. With transaction processing, you can guarantee that a set of operations will not be stopped midway, and that they will either be executed as a whole or not at all (unless explicitly instructed to do so). If no errors occur, the entire set of statements is committed (written) to the database table. If an error occurs, roll back (undo) to restore the database to a known and safe state. So, look at the same example, this time we illustrate how the process works.
(1) Check whether the corresponding customer exists in the database, if not, add him/her.
(2) Submit customer information.
(3) Retrieve the customer's ID.
(4) Add a row to the orders table.
(5) If a failure occurs while adding rows to the orders table, fall back.
(6) Retrieve the new order ID assigned in the orders table.
(7) For each item ordered, add a new row to the orderitems table.
(8) If a failure occurs when adding new rows to orderitems, roll back all added orderitems rows and orders rows.
(9) Submit order information.
When using transactions and transaction processing, there are several key words that appear repeatedly.
The following are a few terms you need to know about transaction processing:1. Transaction refers to a set of SQL statements;
2. Rollback refers to The process of undoing the specified SQL statement;
3. Submit (commit) refers to writing the unstored SQL statement results into the database table;
4. Savepoint (savepoint) refers to the setting during transaction processing A temporary place-holder to which you can issue a rollback (as opposed to rolling back the entire transaction).
【Related recommendations】
1.
mysql free video tutorialMySQL UPDATE trigger (update) and trigger depth AnalysisDetailed explanation of the usage of delete trigger (delete) in MySQLDetailed explanation of insert trigger (insert) in MySQLIntroduction to mysql triggers and how to create and delete triggersThe above is the detailed content of MySQL transaction processing example explanation. For more information, please follow other related articles on the PHP Chinese website!

MySQLoffersvariousstorageengines,eachsuitedfordifferentusecases:1)InnoDBisidealforapplicationsneedingACIDcomplianceandhighconcurrency,supportingtransactionsandforeignkeys.2)MyISAMisbestforread-heavyworkloads,lackingtransactionsupport.3)Memoryengineis

Common security vulnerabilities in MySQL include SQL injection, weak passwords, improper permission configuration, and unupdated software. 1. SQL injection can be prevented by using preprocessing statements. 2. Weak passwords can be avoided by forcibly using strong password strategies. 3. Improper permission configuration can be resolved through regular review and adjustment of user permissions. 4. Unupdated software can be patched by regularly checking and updating the MySQL version.

Identifying slow queries in MySQL can be achieved by enabling slow query logs and setting thresholds. 1. Enable slow query logs and set thresholds. 2. View and analyze slow query log files, and use tools such as mysqldumpslow or pt-query-digest for in-depth analysis. 3. Optimizing slow queries can be achieved through index optimization, query rewriting and avoiding the use of SELECT*.

To monitor the health and performance of MySQL servers, you should pay attention to system health, performance metrics and query execution. 1) Monitor system health: Use top, htop or SHOWGLOBALSTATUS commands to view CPU, memory, disk I/O and network activities. 2) Track performance indicators: monitor key indicators such as query number per second, average query time and cache hit rate. 3) Ensure query execution optimization: Enable slow query logs, record and optimize queries whose execution time exceeds the set threshold.

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

MySQL uses a GPL license. 1) The GPL license allows the free use, modification and distribution of MySQL, but the modified distribution must comply with GPL. 2) Commercial licenses can avoid public modifications and are suitable for commercial applications that require confidentiality.

The situations when choosing InnoDB instead of MyISAM include: 1) transaction support, 2) high concurrency environment, 3) high data consistency; conversely, the situation when choosing MyISAM includes: 1) mainly read operations, 2) no transaction support is required. InnoDB is suitable for applications that require high data consistency and transaction processing, such as e-commerce platforms, while MyISAM is suitable for read-intensive and transaction-free applications such as blog systems.

In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 English version
Recommended: Win version, supports code prompts!
