আমি বর্তমানে স্ট্যাক ওভারফ্লো এর মন্তব্যের ডেটা ডাম্পের বিরুদ্ধে কিছু প্রশ্ন চালানোর চেষ্টা করছি। এখানে স্কিমা দেখতে কেমন:
CREATE TABLE `socomments` (
`Id` int(11) NOT NULL,
`PostId` int(11) NOT NULL,
`Score` int(11) DEFAULT NULL,
`Text` varchar(600) NOT NULL,
`CreationDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UserId` int(11) NOT NULL,
PRIMARY KEY (`Id`),
KEY `idx_socomments_PostId` (`PostId`),
KEY `CreationDate` (`CreationDate`),
FULLTEXT KEY `Text` (`Text`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
আমি এই ক্যোয়ারীটি টেবিলের বিপরীতে চালিয়েছি, এবং এটি অবিশ্বাস্যরূপে ধীর হয়ে গেছে (এটিতে 29 মিলিয়ন সারি রয়েছে তবে এটিতে একটি সম্পূর্ণ-পাঠ্য সূচি রয়েছে):
SELECT *
FROM socomments
WHERE MATCH (Text) AGAINST ('"fixed the post"' IN BOOLEAN MODE)
সুতরাং আমি এটির প্রোফাইল দিয়েছি, এর ফলাফলগুলি:
|| Status || Duration ||
|| starting || 0.000058 ||
|| checking permissions || 0.000006 ||
|| Opening tables || 0.000014 ||
|| init || 0.000019 ||
|| System lock || 0.000006 ||
|| optimizing || 0.000007 ||
|| statistics || 0.000013 ||
|| preparing || 0.000005 ||
|| FULLTEXT initialization || 207.1112 ||
|| executing || 0.000009 ||
|| Sending data || 0.000856 ||
|| end || 0.000004 ||
|| query end || 0.000004 ||
|| closing tables || 0.000006 ||
|| freeing items || 0.000059 ||
|| logging slow query || 0.000037 ||
|| cleaning up || 0.000046 ||
আপনি দেখতে পাচ্ছেন, এটি পুরোপুরি প্রারম্ভিককরণে দীর্ঘ সময় ব্যয় করে। এটা কি স্বাভাবিক? তা না হলে আমি কীভাবে এটি ঠিক করব?
id_group 2
এবং পাবেনid_group 23
। এটি আপনার প্রধান সারণীর ভিতরে অনুসন্ধান করুন এবং আপনার ক্যোয়ারী আইডিতে 2.000 থেকে 2.999 এবং 23.000 থেকে 23.999 পর্যন্ত সীমাবদ্ধ করুন। আপনি নতুন কীওয়ার্ড সংমিশ্রণ তৈরি করে সমস্ত মন্তব্য মিশ্রিত করার পরে অবশ্যই ২ য় ফলাফল আরও ফলাফলের ফলাফল করবে তবে শেষ পর্যন্ত এটি পুরো বিষয়টিকে ত্বরান্বিত করবে। অবশ্যই এটি ডিস্ক স্পেসের ব্যবহার দ্বিগুণ করে। নতুন মন্তব্যগুলি গ্রুপ-টেবিলে কনক্যাট করা উচিত ।