Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL सत्र DBA द्वारा किल (KILL) होने पर ट्रांजैक्शन का क्या होता है?

यदि सत्र ट्रांजैक्शन के बीच में KILL कमांड द्वारा समाप्त किया जाता है (DBA द्वारा), तो वर्तमान ट्रांजैक्शन MySQL द्वारा रोलबैक कर दिया जाता है। सभी डेटाबेस परिवर्तन हटा दिए जाते हैं। यह भी अंतर्निहित रोलबैक (implicit rollback) है।

उदाहरण - चरणबद्ध प्रदर्शन:

1. प्रारंभिक डेटा:

mysql> Select * from marks;
+------+---------+-----------+-------+
| Id   | Name    | Subject   | Marks |
+------+---------+-----------+-------+
| 1    | Aarav   | Maths     | 50    |
| 1    | Harshit | Maths     | 55    |
| 3    | Gaurav  | Comp      | 69    |
| 4    | Rahul   | History   | 40    |
| 5    | Yashraj | English   | 48    |
| 6    | Manak   | History   | 70    |
+------+---------+-----------+-------+

2. ट्रांजैक्शन शुरू, DELETE ऑपरेशन:

mysql> START TRANSACTION;
mysql> Delete from marks where id = 4;
Query OK, 1 row affected (0.00 sec)

3. दूसरी विंडो से PROCESSLIST देखें और KILL करें:

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
  Id: 2
  User: root
  Host: localhost:49303
  db: query
  Command: Sleep
  Time: 22
  State: 
  Info: NULL
*************************** 2. row ***************************
  Id: 3
  User: root
  Host: localhost:49350
  db: NULL
  Command: Query
  Time: 0
  State: NULL
  Info: show processlist

mysql> KILL 2;  -- सत्र 2 (जहां ट्रांजैक्शन चल रहा था) को किल करें
Query OK, 0 rows affected (0.00 sec)

4. मूल सत्र पर वापस - COMMIT का प्रयास:

mysql> COMMIT;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 4
Current database: query
Query OK, 0 rows affected (1.01 sec)

5. अंतिम स्थिति - डिलीट रोलबैक हुआ:

mysql> Select * from marks;
+------+---------+-----------+-------+
| Id   | Name    | Subject   | Marks |
+------+---------+-----------+-------+
| 1    | Aarav   | Maths     | 50    |
| 1    | Harshit | Maths     | 55    |
| 3    | Gaurav  | Comp      | 69    |
| 4    | Rahul   | History   | 40    |  -- डिलीट रद्द, पंक्ति बरकरार
| 5    | Yashraj | English   | 48    |
| 6    | Manak   | History   | 70    |
+------+---------+-----------+-------+

मुख्य बिंदु:

  • KILL सत्र को जबरन समाप्त करता है
  • MySQL अनकमिटेड ट्रांजैक्शन का रोलबैक करता है
  • पुन: कनेक्शन पर नया सत्र ID मिलता है
  • यह व्यवहार डेटा अखंडता सुनिश्चित करता है - आंशिक कार्य कभी कमिट नहीं होता
  1. - MySQL DECIMAL(x,0) की रेंज और स्टोरेज आवश्यकता

    DECIMAL डेटा टाइप BIGINT से बड़ी रेंज स्टोर कर सकता है। BIGINT की अधिकतम रेंज 18,446,744,073,709,551,615 है, जबकि DECIMAL(65,0) 65 अंकों तक की संख्या स्टोर कर सकता है। स्टोरेज आवश्यकता फॉर्मूला: StorageRequirementInBytes = (x/9) + remaining WHERE remaining = ROUND_UP((x%9) / 2) DECIMAL(65,0) अधिकतम

  1. - MySQL में EXCEPT का समकक्ष क्या है?

    आप MySQL में EXCEPT का उपयोग नहीं कर सकते, इसके बजाय NOT IN ऑपरेटर का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable    (    Number1 int    ); Query OK, 0 rows affected (0.71 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql>

  1. - MySQL में ALIAS शॉर्टहैंड क्या है?

    MySQL में कॉलम एलियास (alias) के लिए AS कीवर्ड वैकल्पिक है। आप इसे छोड़ सकते हैं। टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20) ); डेटा डालना mysql> INSERT INTO DemoTable(Name) VALUES(John); mysql> INSERT INTO DemoTable(N