Akwụkwọ ndekọ ederede
MySQL nchekwa dataMkpesa php dịpụrụ adịpụ / echiche mepere emepe / nhazi ọkwa ọkwa
MySQL Okwu
A na-eji azụmahịa MySQL eme ihe iji hazie data na nnukwu ọrụ yana nnukwu mgbagwoju anya.Dịka ọmụmaatụ, na sistemụ njikwa ndị ọrụ, ọ bụrụ na ihichapụ mmadụ, ịkwesịrị ihichapụ ma ozi bụ isi nke onye ahụ yana ozi metụtara onye ahụ, dị ka igbe ozi, akụkọ, wdg. N'ụzọ dị otú a, nkwupụta ọrụ nchekwa data ndị a. mebere azụmahịa !
- A na-akwado azụmahịa na MySQL naanị maka ọdụ data ma ọ bụ tebụl na-eji igwe nchekwa data Innodb.
- Enwere ike iji nhazi azụmahịa iji nọgide na-eguzosi ike n'ezi ihe nke nchekwa data, na-ahụ na egburu batches nke SQL nkwupụta ma ọ bụ na-emeghị nke ọ bụla n'ime ha.
- A na-eji azụmahịa iji jikwaa fanye, melite, hichapụ nkwupụta
N'ikwu okwu n'ozuzu, azụmahịa ga-ezute ọnọdụ 4 (ACID): Atomity (atomicity), Consistency (ssability), Kewapụ (kewapụ), Ogologo (ntụkwasị obi)
- 1,Atomity nke azụmahịa:Usoro azụmahịa nke ga-aga nke ọma ma ọ bụ wepụ.
- 2,nkwụsi ike:Enwere data iwu na-akwadoghị (mmachibido igodo isi mba ọzọ na ihe ndị yiri ya), ma wepụrụ azụmahịa ahụ.
- 3,Nnọpụ iche:Azụmahịa na-aga n'onwe ya.Ọ bụrụ na nsonaazụ nke azụmahịa na-emetụta azụmahịa ndị ọzọ, mgbe ahụ, a ga-ewepụ azụmahịa ndị ọzọ.100% mwepu nke azụmahịa na-efu nke ọsọ.
- 4,ntụkwasị obi:Mgbe ngwanro na ngwaike kwụsịrị, onye ọkwọ ụgbọ ala data InnoDB ga-eji faịlụ ndekọ wughachi ma gbanwee ya.Ntụkwasị obi na oke ọsọ enweghị ike inwe ha abụọ, nhọrọ innodb_flush_log_at_trx_commit na-ekpebi mgbe ị ga-echekwa azụmahịa na ndekọ.
N'okpuru ntọala ndabara nke ahịrị iwu MySQL, a na-eme azụmahịa na-akpaghị aka, ya bụ, a ga-eme ọrụ COMMIT ozugbo emechara nkwupụta SQL.Ya mere, iji mepe azụmahịa n'ụzọ doro anya ga-eji iwu BEGIN ma ọ bụ malite ịzụ ahịa, ma ọ bụ mebie iwu SET AUTOCOMMIT=0, iji gbanyụọ ojiji nke akpaaka maka nnọkọ dị ugbu a.
Nkwupụta njikwa azụmahịa:
- Malite ma ọ bụ malite azụmahịa; malite azụmahịa n'ụzọ doro anya;
- KWESỊRỊ; Ịrụ ọrụ nwekwara ike iji, mana ha abụọ bụ otu. COMMIT na-eme azụmahịa ahụ ma mee mgbanwe niile emere na nchekwa data na-adịgide adịgide;
- ROLLBACK; enwere ike iji ROLLBACK WORK, mana ha abụọ bụ otu.Rollback kwụsịrị azụmahịa onye ọrụ wee megharịa mgbanwe niile na-enweghị mgbagha na-aga n'ihu;
- Ihe nchọpụta SAVEPOINT; SAVEPOINT na-enye ohere ịmepụta ebe nchekwa na azụmahịa, yana enwere ike inwe ọtụtụ SAVEPOINT na azụmahịa;
- Ntọhapụ SAVEPOINT nchọpụta; ihichapụ ebe nchekwa nke azụmahịa, mgbe enweghị ebe nchekwa akọwapụtara, ime nkwupụta ahụ ga-atụfu ihe dị iche;
- ROLLBACK TO nchoputa; tụgharịa azụmahịa ahụ ruo n'ókè;
- SET TRANSACTION; ejiri iji tọọ ọkwa dịpụrụ adịpụ nke azụmahịa ahụ. Igwe nchekwa InnoDB na-enye ọkwa kewapụ azụmahịa nke READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, na SERIALIZABLE.
Enwere ụzọ abụọ bụ isi maka nhazi azụmahịa MYSQL:
1. Jiri mmalite, ROLLBACK, KWESỊRỊ imezu ya
- BỤ malite azụmahịa
- AKW .KWỌ mweghachi azụmahịa
- KPỌỌ Nkwenye azụmahịa
2. Jiri SET ozugbo ịgbanwe MySQL's auto-commit mode:
- Tọọ AUTOCOMMIT=0 Gbanyụọ ntinye aka
- Tọọ AUTOCOMMIT=1 Gbanyụọ akpaaka
ule azụmahịa
mysql> use chenweiliang; Database changed mysql> CREATE TABLE chenweiliang_transaction_test( id int(5)) engine=innodb; # 创建数据表 Query OK, 0 rows affected (0.04 sec) mysql> select * from chenweiliang_transaction_test; Empty set (0.01 sec) mysql> begin; # 开始事务 Query OK, 0 rows affected (0.00 sec) mysql> insert into chenweiliang_transaction_test value(5); Query OK, 1 rows affected (0.01 sec) mysql> insert into chenweiliang_transaction_test value(6); Query OK, 1 rows affected (0.00 sec) mysql> commit; # 提交事务 Query OK, 0 rows affected (0.01 sec) mysql> select * from chenweiliang_transaction_test; +------+ | id | +------+ | 5 | | 6 | +------+ 2 rows in set (0.01 sec) mysql> begin; # 开始事务 Query OK, 0 rows affected (0.00 sec) mysql> insert into chenweiliang_transaction_test values(7); Query OK, 1 rows affected (0.00 sec) mysql> rollback; # 回滚 Query OK, 0 rows affected (0.00 sec) mysql> select * from chenweiliang_transaction_test; # 因为回滚所以数据没有插入 +------+ | id | +------+ | 5 | | 6 | +------+ 2 rows in set (0.01 sec) mysql>
Iji Usoro Azụmahịa na PHP
MySQL ORDER site n'ule:
<? php $dbhost = 'localhost:3306'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); mysqli_select_db( $conn, 'chenweiliang' ); mysqli_query($conn, "SET AUTOCOMMIT=0"); // 设置为不自动提交,因为MYSQL默认立即执行 mysqli_begin_transaction($conn); // 开始事务定义 if(!mysqli_query($conn, "insert into chenweiliang_transaction_test (id) values(8)")) { mysqli_query($conn, "ROLLBACK"); // 判断当执行失败时回滚 } if(!mysqli_query($conn, "insert into chenweiliang_transaction_test (id) values(9)")) { mysqli_query($conn, "ROLLBACK"); // 判断执行失败时回滚 } mysqli_commit($conn); //执行事务 mysqli_close($conn); ?>
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) kesara "MySQL Database Transaction Rollback Isolation/Open Concept/Processing of PHP Statements", nke na-enyere gị aka.
Nnọọ ka ị kesaa njikọ nke akụkọ a:https://www.chenweiliang.com/cwl-494.html
Nabata na ọwa Telegram nke blọgụ Chen Weiliang ka ị nweta mmelite kachasị ọhụrụ!
📚 Ntuziaka a nwere nnukwu uru, 🌟Nke a bụ ohere dị ụkọ, echefula ya! ⏰⌛💨
Kekọrịta na-amasị ma ọ bụrụ na-amasị gị!
Ịkekọrịta na mmasị gị bụ mkpali anyị na-aga n'ihu!