MySQL में "repair with keycache" से बचने का तरीका
MySQL में "repair with keycache" से बचने के लिए, आपको नीचे दिए गए सिंटैक्स का पालन करना होगा:
create table yourNewTableName as (select *from yourOldTableName); alter table yourNewTableName add index(yourColumnName);
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(20),
StudentLastName varchar(20)
); Query OK, 0 rows affected (0.24 sec)
इन्सर्ट कमांड से टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Doe'); Query OK, 1 row affected (0.05 sec)
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('David','Miller'); Query OK, 1 row affected (0.05 sec)
सेलेक्ट स्टेटमेंट से टेबल के सभी रिकॉर्ड प्रदर्शित करें:
mysql> select *from DemoTable;
आउटपुट:
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Doe | | 2 | David | Miller | +-----------+------------------+-----------------+ 2 rows in set (0.00 sec)
चरण 1 - MySQL में "repair with keycache" से बचने का क्वेरी:
mysql> create table DemoTable as (select *from DemoTable); Query OK, 2 rows affected (0.34 sec) Records: 2 Duplicates: 0 Warnings: 0
चरण 2 - अब, ALTER TABLE का उपयोग करें:
mysql> alter table DemoTable add index(StudentFirstName); Query OK, 2 rows affected (0.57 sec) Records: 2 Duplicates: 0 Warnings: 0
व्याख्या: CREATE TABLE ... AS SELECT टेबल को बिना इंडेक्स के पुनर्निर्मित करता है (तेज़)। फिर ALTER TABLE ... ADD INDEX इंडेक्स को कुशलतापूर्वक बनाता है (सॉर्ट करके), "repair with keycache" (धीमी, अनसॉर्टेड इंडेक्स निर्माण) से बचाता है। नोट: मूल उदाहरण में उसी टेबल नाम का उपयोग किया गया है; उत्पादन में एक नया नाम उपयोग करें, फिर RENAME TABLE से स्वैप करें।