ปัญหา
เนื่องจากการ Query database บน Mysql 5.7 นั้นจะมีการ Enable Option บางส่วนขึ้นมาโดยอัตโนมัติ ส่งผลกระทบให้การ Query database ข้อมูลที่มีขนาดใหญ่ใช้เวลามากกว่าปกติที่ใช้ Mysql Version เก่า
วิธีแก้ไขปัญหา
1. ทำการตรวจสอบ Option : optimizer_switch ที่มีการเปิดใช้งานทั้งหมดบน Mysql 5.7 ที่ใช้งานอยู่ปัจจุบัน
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3091
Server version: 5.7.29 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>SELECT @@optimizer_switch\G
จะพบข้อมูล
mysql> SELECT @@optimizer_switch\G
*************************** 1. row ***************************
@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on
1 row in set (0.00 sec)
mysql>
2. วิธีการ Disable Option : optimizer_switch
ให้ทำการแก้ไขไฟล์ Config database
3. จากนั้นทำการเพิ่มข้อมูล
4. หลังจากการเพิ่มข้อมูลเรียบร้อยแล้วให้ทำการ Restart service mysql
5. ทำการตรวจสอบความถูกต้องอีกครั้ง
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3091
Server version: 5.7.29 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>SELECT @@optimizer_switch\G
จะพบข้อมูล
mysql> SELECT @@optimizer_switch\G
*************************** 1. row ***************************
@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=off
1 row in set (0.00 sec)
mysql>