आप एक 'भौतिक दृश्य' बना सकते हैं।http://en.wikipedia.org/wiki/Materialized_viewए>
मूल रूप से एक तालिका जो जॉइन का परिणाम है, और उस पर एक पूर्ण टेक्स्ट इंडेक्स बनाएं।
CREATE TABLE materialized (FULLTEXT idx (user_name,department_name))
SELECT u.id,user_name,department_name
FROM users u INNER JOIN departments d ON (d.id = dept_id)
फिर आप इसके बजाय उस टेबल पर क्वेरीज़ चला सकते हैं..
SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)
लेकिन...
आपको तालिका को समय-समय पर अपडेट करना होगा (या जब अंतर्निहित तालिकाएं अपडेट होती हैं) - सबसे आसान बस DROP
है और फिर से बनाएँ - या आप TRUNCATE
. का उपयोग कर सकते हैं फिर INSERT INTO ... SELECT ... FROM ...
प्रारूप।
(अधिक विस्तृत योजनाओं में 'व्यू' को अपडेट रखने के लिए ट्रिगर्स शामिल हैं, या यहां तक कि बिनलॉग को देखना, और 'व्यू' के खिलाफ अपडेट को फिर से चलाना)