মাইএসকিলডাম্প কি সূচকগুলি ডিফল্টরূপে রফতানি করে?


20

আমি mysqldump সাথে একটু কাছাকাছি অভিনয় এবং আমি ভাবছিলাম, যদি রপ্তানি সূচকের করে ( FULLTEXT, INDEX, ...) ডিফল্টরূপে। আমি এটি পড়লাম এবং আমি এই বিকল্পটি পেয়েছি :

--disable-keys, -K

যা প্রস্তাব দেয়, এটি আসলে সূচকগুলি রফতানি করে। তবে আমি আমার ব্যাখ্যায় বিশ্বাস করতে চাই না এবং আমি নিশ্চিত করতে চাই যে আমি এটি সঠিক (বা ভুল ;-)) পেয়েছি। কেউ কি তা নিশ্চিত করতে পারবেন?


রিফ্রেশ করুন আমি আমার উত্তরটি উদাহরণস্বরূপ mysqldump অংশগুলি সহ আপডেট করেছি ex
RolandoMySQLDBA

রিফ্রেশ করুন অক্ষম কী এবং সক্ষম কীগুলি সম্পর্কে অতিরিক্ত সতর্কতার সাথে আমি আমার উত্তর আপডেট করেছি।
RolandoMySQLDBA

রিফ্রেশ করুন অক্ষম কীগুলি এবং ডাম্পিং টেবিল স্পেসগুলি বাইপাস করা সম্পর্কে অতিরিক্ত সতর্কতার সাথে আমি আমার উত্তর আপডেট করেছি।
রোল্যান্ডোমাইএসকিউএলডিবিএ

এই প্রশ্নটি একটি +1 এর প্রাপ্য কারণ আমি প্রায় নিশ্চিত যে অনেকের মনেই একই প্রশ্ন ছিল তবে জিজ্ঞাসা করতে ভয় পেলেন। আপনি জিজ্ঞাসা করেছেন, আপনি +1 পেয়েছেন !!!
RolandoMySQLDBA

@ রোল্যান্ডোমাইএসকিউএলডিবিএ: আপনি আপনার উত্তরে প্রচুর প্রচেষ্টা করেছেন। আপনাকে অনেক ধন্যবাদ!!
অউফউইন্ড

উত্তর:


16

না, এটি সূচকগুলি রফতানি করে না। মাইএসকিএলডাম্পটি মাইএসকিএলে ফিরে লোড করার পরে সূচিগুলি পুনরায় তৈরি করা হয়। আপনি "- ডিসাইজেবল-কী" যে বিকল্পগুলি পেয়েছেন সেগুলি সারণীর লোডের আগে INSERTs এর মাধ্যমে মাইএসকিএলডামকে কিছু লিখতে বাধ্য করে:

DROP TABLE IF EXISTS `tblAccountLinks`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `tblAccountLinks` (
  `ID` int(11) NOT NULL auto_increment,
  `FirmNo` varchar(10) NOT NULL,
  `CustomerNo` varchar(20) NOT NULL,
  `AccountNo` varchar(20) NOT NULL,
  `LinkType` smallint(6) NOT NULL,
  `AccessLevel` smallint(6) NOT NULL,
  `Status` smallint(6) NOT NULL,
  `CreatedOn` datetime NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=27023 DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `tblAccountLinks`
--

LOCK TABLES `tblAccountLinks` WRITE;
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
INSERT INTO `tblAccountLinks` VALUES (1,'F0001','C001','T00000001',1,2,1,'2008-06-30 07:55:43'),(2,'
F0001','C001','T00000002',2,2,1,'2008-06-30 07:55:43'),(3,'F0001','C002','27601012',1,2,1,'2008-06-3 ...

লক ট্যাবলেসের পরে লাইনটি

/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;

এটিই - ডিজেবল-কী বিকল্পটি মাইএসকিल्डম্পে এম্বেড করে।

এছাড়াও, সমস্ত INSERT সম্পন্ন করার পরে এটি এম্বেড করা হয়

/*!40000 ALTER TABLE `tblAccountLinks` ENABLE KEYS */;
UNLOCK TABLES;

ক্যাভেট # 1

একটি সারণী পুনরায় লোড করা হচ্ছে এমন সময়ে ননউনিক ইন্ডেক্সগুলি পুনরায় লোড করতে অক্ষম করতে অক্ষম কী এবং সক্ষম কীগুলি প্রয়োগ করা হয়েছিল। প্রাথমিক কী এবং স্বতন্ত্র কীগুলি অক্ষম নয়। ইনসার্টগুলি একই মুহুর্তে এগুলি লোড করা হয়। একবার আপনি কীগুলি সক্ষম করে দিলে, নুনুফিক সূচকগুলি বাছাইয়ের মাধ্যমে পুনর্নির্মাণ করা হয় (বা মাইসাম কী ক্যাশে ব্যবহারের ফলে পর্যাপ্ত স্মৃতি নেই)

দুর্ভাগ্যক্রমে, অক্ষম কী এবং সক্ষম কীগুলি কেবল মনিএসএম টেবিলের জন্য কাজ করে, ইনোডিবি নয়।

ক্যাভেট # 2

আপনার - অক্ষম-কীগুলি করতে হবে না। আপনি তাদের --স্কিপ-অক্ষম-কীগুলি দ্বারা অক্ষম কীগুলি অক্ষম করতে পারেন (কোনও পাং উদ্দেশ্য নয়):

  -K, --disable-keys  '/*!40000 ALTER TABLE tb_name DISABLE KEYS */; and
                      '/*!40000 ALTER TABLE tb_name ENABLE KEYS */; will be put
                      in the output.
                      (Defaults to on; use --skip-disable-keys to disable.)

এর ফলে ননউনিক ইন্ডেক্সের জন্য সূচী পৃষ্ঠাগুলি ধীর লোড এবং একটি সম্ভাব্য লপসাইডিং হতে পারে।

ক্যাভেট # 3

আপনি প্রকৃত InnoDB টেবিল স্পেসগুলি (মাইএসকিউএল 5.5.12) ডাম্প করতে পারেন

  -Y, --all-tablespaces 
                      Dump all the tablespaces.
  -y, --no-tablespaces 
                      Do not dump any tablespace information.

1
দয়া করে নোট করুন যে এটি পুরানো, মাইএসকিউএল 5.7 এর সূচি অন্তর্ভুক্ত করে না।
এরিকা কেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.