का प्रयोग करें information_schema.views तालिका
यह सभी विचारों के लिए EXPLAIN उत्पन्न करेगा
mysql -uroot -p -AN -e"select concat('explain ',view_definition) from information_schema.views" > /root/ExplainViews.sql
यह mydb डेटाबेस में सभी दृश्यों के लिए EXPLAIN उत्पन्न करेगा
mysql -uroot -p -AN -e"select concat('explain ',view_definition) from information_schema.views where table_schema = 'mydb'" > /root/ExplainViews.sql
कोशिश करो !!!
UPDATE 2012-03-22 11:30 EDT
@MattFenwick, आपका जवाब मेरी तुलना में बहुत आसान है। यहाँ एक उदाहरण है जिसे मैंने अपने पीसी पर MySQL 5.5.12 चलाने की कोशिश की। मैंने आपके उत्तर से चयनित संस्करण दोनों पर और मेरे उत्तर से उत्पन्न EXPLAIN को छोड़ दिया:
mysql> explain select * from bigjoin;
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
| 1 | SIMPLE | k | index | NULL | PRIMARY | 4 | NULL | 14 | Using index |
| 1 | SIMPLE | a | eq_ref | PRIMARY | PRIMARY | 4 | test.k.id_key | 1 | Using index |
| 1 | SIMPLE | b | ALL | NULL | NULL | NULL | NULL | 4 | |
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
3 rows in set (0.00 sec)
mysql> explain select `a`.`id_key` AS `id_key1`,`b`.`id_key` AS `id_key2` from ((`test`.`idlist` `k` left join `test`.`id_key_table` `a` on((`k`.`id_key` = `a`.`id_key`))) left join `test`.`new_keys_to_load` `b` on((`k`.`id_key` = `b`.`id_key`)));
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
| 1 | SIMPLE | k | index | NULL | PRIMARY | 4 | NULL | 14 | Using index |
| 1 | SIMPLE | a | eq_ref | PRIMARY | PRIMARY | 4 | test.k.id_key | 1 | Using index |
| 1 | SIMPLE | b | ALL | NULL | NULL | NULL | NULL | 4 | |
+----+-------------+-------+--------+---------------+---------+---------+---------------+------+-------------+
3 rows in set (0.00 sec)
mysql>
वे दोनों एक ही योजना का उत्पादन किया। मैं आपके तरीके को लागू करने के लिए अपना जवाब बदल दूंगा। आपको मुझसे एक +1 मिलता है, हालांकि यह सरलता के लिए +2 है। आपको आगे बढ़ना चाहिए और इस पर अपना जवाब स्वीकार करना चाहिए।
यहाँ MySQL में VIEW के बारे में एक रोचक तथ्य है: एक दृश्य में दो स्थानों का प्रतिनिधित्व किया गया है information_schema डेटाबेस
यह सभी विचारों के लिए EXPLAIN उत्पन्न करेगा
mysql -uroot -p -AN -e"select concat('explain select * from ',table_schema,'.',table_name,';') from information_schema.tables WHERE engine IS NULL" > /root/ExplainViews.sql
या
mysql -uroot -p -AN -e"select concat('explain select * from ',table_schema,'.',table_name,';') from information_schema.views" > /root/ExplainViews.sql
यह mydb डेटाबेस में सभी दृश्यों के लिए EXPLAIN उत्पन्न करेगा
mysql -uroot -p -AN -e"select concat('explain select * from ',table_schema,'.',table_name,';') from information_schema.tables WHERE table_schema='mydb' AND engine IS NULL;" > /root/ExplainViews.sql
या
mysql -uroot -p -AN -e"select concat('explain select * from ',table_schema,'.',table_name,';') from information_schema.views WHERE table_schema='mydb';" > /root/ExplainViews.sql