MySQL using variable in SELECT command with view affecting performance Announcing the arrival...
AppleTVs create a chatty alternate WiFi network
Effects on objects due to a brief relocation of massive amounts of mass
Take 2! Is this homebrew Lady of Pain warlock patron balanced?
How could we fake a moon landing now?
Why is it faster to reheat something than it is to cook it?
How to tell that you are a giant?
Why do we bend a book to keep it straight?
Crossing US/Canada Border for less than 24 hours
Trademark violation for app?
Chinese Seal on silk painting - what does it mean?
Why do we need to use the builder design pattern when we can do the same thing with setters?
How do I use the new nonlinear finite element in Mathematica 12 for this equation?
Why wasn't DOSKEY integrated with COMMAND.COM?
Illegal assignment from sObject to Id
How to write the following sign?
How does Python know the values already stored in its memory?
What is "gratricide"?
What do you call the main part of a joke?
Selecting user stories during sprint planning
ArcGIS Pro Python arcpy.CreatePersonalGDB_management
How does the secondary effect of the Heat Metal spell interact with a creature resistant/immune to fire damage?
SF book about people trapped in a series of worlds they imagine
Did Deadpool rescue all of the X-Force?
Why are the trig functions versine, haversine, exsecant, etc, rarely used in modern mathematics?
MySQL using variable in SELECT command with view affecting performance
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)MySQL optimization - year column grouping - using temporary table, filesortWhy would splitting up a query make it faster, and can I/should I fix this?MYSQL wont use index in “IN(SELECT ..)” sub clauseIdentical query, tables, but different EXPLAIN and performanceWhy does IN (subquery) perform bad when = (subquery) is blazing fast?Deciding which MySQL execution plan is betterOptimizing a simple query on a large tableHow can I improve this table, and subsequently the performance of the queries I execute on it?MySQL slow queryselect MAX() from MySQL view (2x INNER JOIN) is slow
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
sorry if this has been asked already. I've just moved from MySQL 5.6 to 5.7.17 and I'm struggling to understand this issue.
I have a view "delete_me_test_" which has around 26k rows.
SELECT
delete_me_test_.*
from delete_me_test_;
takes less than a second. However I'm trying to assign a value to a variable withing the select command. The goal is to reissue a row number to all returned rows which can be used by DataTable plugin(JQuery) from web-front-end.
To cut the story short, initializing or assigning a value withing a select command affects the performance drastically. I mean 10 seconds to return 50 rows.
This code here
SELECT
(select @row_nummer:= @row_nummer+1), -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
takes around 10 seconds and please see the explain graph with and without using the variable for the same query.
I'm still learning MySQL and not sure what exactly this issue could be but I can confirm this exact setup was working on 5.6 version without any issues. In 5.7 server gets 100% CPU usage and query never ends. Anyone could help on this please?
I must add this too: If I extract the actual query from the "delete_me_Test" view and add the variable there to test
SELECT
(select @row_nummer:= @row_nummer+1),
...
rest of the selct field statements
from many tables in the select command;
Query works as expected without any issue. Its just when I use it as a view it gets screwed.
I'm using MySQL on windows server 2008 with all updates are installed. Is this a bug?
EDIT: Explain of above query with variable assigned
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived2> | | system | | | | | 1 | 100.00 | |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived3> | | ALL | | | | | 222724 | 100.00 | |
| 3 | DERIVED | tbl_su | | ALL | | | | | 26712 | 100.00 | |
| 3 | DERIVED | tbl_su_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_su.suOperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_requested_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_su.tbl_SU_requested_Region | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_maritalstatus | | eq_ref | PRIMARY,maritalStatusID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suMaritalStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_gender | | eq_ref | PRIMARY,gender_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suGender | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_sectionandcategory | | eq_ref | SectionAndCatID_UNIQUE | SectionAndCatID_UNIQUE | 4 | ccmsv2.tbl_su.suSectionAndCatID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_su_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_section_category | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionCatID | 1 | 100.00 | |
| 3 | DERIVED | tbl_section | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionID | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_sub | | ref | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | 110 | ccmsv2.tbl_su.uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed | | eq_ref | PRIMARY,bedid_UNIQUE,bedid | bedid_UNIQUE | 4 | ccmsv2.tbl_oa_sub.bed_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room | | eq_ref | PRIMARY,roomID_UNIQUE,roomID | roomID_UNIQUE | 4 | ccmsv2.tbl_property_room_bed.RoomID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_floor | | eq_ref | PRIMARY,RoomFloorID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.FloorID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_property | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_room.property_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa | | eq_ref | PRIMARY,oA_ID_UNIQUE,Occupancyid | PRIMARY | 4 | ccmsv2.tbl_oa_sub.oa_main_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa.oA_typeID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_oa_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_oa.oA_OperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed_status | | eq_ref | PRIMARY,bed_status_id_UNIQUE,bed_status_id | PRIMARY | 4 | ccmsv2.tbl_property_room_bed.statusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_type | | eq_ref | PRIMARY,ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.roomTypeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_property.property_region_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_local_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.local_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_regional_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.regional_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_landlord | | eq_ref | PRIMARY,uuid_UNIQUE | PRIMARY | 110 | ccmsv2.tbl_property.landlord_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_proposed_to | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_on_behalf_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_property_proposed_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_by_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_landlord_company | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_landlord.company_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_oa_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.booking_main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property.property_occupancy_typeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_os_sub | | ref | PRIMARY,propertyStatusID | PRIMARY | 4 | ccmsv2.tbl_property.property_operation_statusID | 1 | 100.00 | Using where; Using index |
| 3 | DERIVED | tbl_property_os_main | | eq_ref | PRIMARY,idtbl_property_operationStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_os_sub.tbl_property_operationstatus_mainID | 1 | 100.00 | Using index |
| 3 | DERIVED | <derived4> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_su.safeguarding_type_id | 2 | 100.00 | |
| 3 | DERIVED | <derived5> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_property.safeguarding_type_id | 2 | 100.00 | |
| 5 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 4 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 2 | DERIVED | | | | | | | | | | No tables used |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
mysql optimization mysql-5.7
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
sorry if this has been asked already. I've just moved from MySQL 5.6 to 5.7.17 and I'm struggling to understand this issue.
I have a view "delete_me_test_" which has around 26k rows.
SELECT
delete_me_test_.*
from delete_me_test_;
takes less than a second. However I'm trying to assign a value to a variable withing the select command. The goal is to reissue a row number to all returned rows which can be used by DataTable plugin(JQuery) from web-front-end.
To cut the story short, initializing or assigning a value withing a select command affects the performance drastically. I mean 10 seconds to return 50 rows.
This code here
SELECT
(select @row_nummer:= @row_nummer+1), -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
takes around 10 seconds and please see the explain graph with and without using the variable for the same query.
I'm still learning MySQL and not sure what exactly this issue could be but I can confirm this exact setup was working on 5.6 version without any issues. In 5.7 server gets 100% CPU usage and query never ends. Anyone could help on this please?
I must add this too: If I extract the actual query from the "delete_me_Test" view and add the variable there to test
SELECT
(select @row_nummer:= @row_nummer+1),
...
rest of the selct field statements
from many tables in the select command;
Query works as expected without any issue. Its just when I use it as a view it gets screwed.
I'm using MySQL on windows server 2008 with all updates are installed. Is this a bug?
EDIT: Explain of above query with variable assigned
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived2> | | system | | | | | 1 | 100.00 | |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived3> | | ALL | | | | | 222724 | 100.00 | |
| 3 | DERIVED | tbl_su | | ALL | | | | | 26712 | 100.00 | |
| 3 | DERIVED | tbl_su_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_su.suOperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_requested_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_su.tbl_SU_requested_Region | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_maritalstatus | | eq_ref | PRIMARY,maritalStatusID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suMaritalStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_gender | | eq_ref | PRIMARY,gender_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suGender | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_sectionandcategory | | eq_ref | SectionAndCatID_UNIQUE | SectionAndCatID_UNIQUE | 4 | ccmsv2.tbl_su.suSectionAndCatID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_su_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_section_category | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionCatID | 1 | 100.00 | |
| 3 | DERIVED | tbl_section | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionID | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_sub | | ref | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | 110 | ccmsv2.tbl_su.uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed | | eq_ref | PRIMARY,bedid_UNIQUE,bedid | bedid_UNIQUE | 4 | ccmsv2.tbl_oa_sub.bed_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room | | eq_ref | PRIMARY,roomID_UNIQUE,roomID | roomID_UNIQUE | 4 | ccmsv2.tbl_property_room_bed.RoomID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_floor | | eq_ref | PRIMARY,RoomFloorID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.FloorID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_property | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_room.property_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa | | eq_ref | PRIMARY,oA_ID_UNIQUE,Occupancyid | PRIMARY | 4 | ccmsv2.tbl_oa_sub.oa_main_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa.oA_typeID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_oa_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_oa.oA_OperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed_status | | eq_ref | PRIMARY,bed_status_id_UNIQUE,bed_status_id | PRIMARY | 4 | ccmsv2.tbl_property_room_bed.statusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_type | | eq_ref | PRIMARY,ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.roomTypeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_property.property_region_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_local_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.local_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_regional_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.regional_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_landlord | | eq_ref | PRIMARY,uuid_UNIQUE | PRIMARY | 110 | ccmsv2.tbl_property.landlord_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_proposed_to | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_on_behalf_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_property_proposed_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_by_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_landlord_company | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_landlord.company_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_oa_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.booking_main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property.property_occupancy_typeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_os_sub | | ref | PRIMARY,propertyStatusID | PRIMARY | 4 | ccmsv2.tbl_property.property_operation_statusID | 1 | 100.00 | Using where; Using index |
| 3 | DERIVED | tbl_property_os_main | | eq_ref | PRIMARY,idtbl_property_operationStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_os_sub.tbl_property_operationstatus_mainID | 1 | 100.00 | Using index |
| 3 | DERIVED | <derived4> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_su.safeguarding_type_id | 2 | 100.00 | |
| 3 | DERIVED | <derived5> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_property.safeguarding_type_id | 2 | 100.00 | |
| 5 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 4 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 2 | DERIVED | | | | | | | | | | No tables used |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
mysql optimization mysql-5.7
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
sorry if this has been asked already. I've just moved from MySQL 5.6 to 5.7.17 and I'm struggling to understand this issue.
I have a view "delete_me_test_" which has around 26k rows.
SELECT
delete_me_test_.*
from delete_me_test_;
takes less than a second. However I'm trying to assign a value to a variable withing the select command. The goal is to reissue a row number to all returned rows which can be used by DataTable plugin(JQuery) from web-front-end.
To cut the story short, initializing or assigning a value withing a select command affects the performance drastically. I mean 10 seconds to return 50 rows.
This code here
SELECT
(select @row_nummer:= @row_nummer+1), -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
takes around 10 seconds and please see the explain graph with and without using the variable for the same query.
I'm still learning MySQL and not sure what exactly this issue could be but I can confirm this exact setup was working on 5.6 version without any issues. In 5.7 server gets 100% CPU usage and query never ends. Anyone could help on this please?
I must add this too: If I extract the actual query from the "delete_me_Test" view and add the variable there to test
SELECT
(select @row_nummer:= @row_nummer+1),
...
rest of the selct field statements
from many tables in the select command;
Query works as expected without any issue. Its just when I use it as a view it gets screwed.
I'm using MySQL on windows server 2008 with all updates are installed. Is this a bug?
EDIT: Explain of above query with variable assigned
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived2> | | system | | | | | 1 | 100.00 | |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived3> | | ALL | | | | | 222724 | 100.00 | |
| 3 | DERIVED | tbl_su | | ALL | | | | | 26712 | 100.00 | |
| 3 | DERIVED | tbl_su_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_su.suOperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_requested_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_su.tbl_SU_requested_Region | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_maritalstatus | | eq_ref | PRIMARY,maritalStatusID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suMaritalStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_gender | | eq_ref | PRIMARY,gender_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suGender | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_sectionandcategory | | eq_ref | SectionAndCatID_UNIQUE | SectionAndCatID_UNIQUE | 4 | ccmsv2.tbl_su.suSectionAndCatID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_su_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_section_category | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionCatID | 1 | 100.00 | |
| 3 | DERIVED | tbl_section | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionID | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_sub | | ref | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | 110 | ccmsv2.tbl_su.uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed | | eq_ref | PRIMARY,bedid_UNIQUE,bedid | bedid_UNIQUE | 4 | ccmsv2.tbl_oa_sub.bed_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room | | eq_ref | PRIMARY,roomID_UNIQUE,roomID | roomID_UNIQUE | 4 | ccmsv2.tbl_property_room_bed.RoomID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_floor | | eq_ref | PRIMARY,RoomFloorID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.FloorID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_property | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_room.property_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa | | eq_ref | PRIMARY,oA_ID_UNIQUE,Occupancyid | PRIMARY | 4 | ccmsv2.tbl_oa_sub.oa_main_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa.oA_typeID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_oa_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_oa.oA_OperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed_status | | eq_ref | PRIMARY,bed_status_id_UNIQUE,bed_status_id | PRIMARY | 4 | ccmsv2.tbl_property_room_bed.statusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_type | | eq_ref | PRIMARY,ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.roomTypeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_property.property_region_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_local_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.local_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_regional_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.regional_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_landlord | | eq_ref | PRIMARY,uuid_UNIQUE | PRIMARY | 110 | ccmsv2.tbl_property.landlord_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_proposed_to | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_on_behalf_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_property_proposed_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_by_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_landlord_company | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_landlord.company_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_oa_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.booking_main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property.property_occupancy_typeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_os_sub | | ref | PRIMARY,propertyStatusID | PRIMARY | 4 | ccmsv2.tbl_property.property_operation_statusID | 1 | 100.00 | Using where; Using index |
| 3 | DERIVED | tbl_property_os_main | | eq_ref | PRIMARY,idtbl_property_operationStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_os_sub.tbl_property_operationstatus_mainID | 1 | 100.00 | Using index |
| 3 | DERIVED | <derived4> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_su.safeguarding_type_id | 2 | 100.00 | |
| 3 | DERIVED | <derived5> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_property.safeguarding_type_id | 2 | 100.00 | |
| 5 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 4 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 2 | DERIVED | | | | | | | | | | No tables used |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
mysql optimization mysql-5.7
sorry if this has been asked already. I've just moved from MySQL 5.6 to 5.7.17 and I'm struggling to understand this issue.
I have a view "delete_me_test_" which has around 26k rows.
SELECT
delete_me_test_.*
from delete_me_test_;
takes less than a second. However I'm trying to assign a value to a variable withing the select command. The goal is to reissue a row number to all returned rows which can be used by DataTable plugin(JQuery) from web-front-end.
To cut the story short, initializing or assigning a value withing a select command affects the performance drastically. I mean 10 seconds to return 50 rows.
This code here
SELECT
(select @row_nummer:= @row_nummer+1), -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
takes around 10 seconds and please see the explain graph with and without using the variable for the same query.
I'm still learning MySQL and not sure what exactly this issue could be but I can confirm this exact setup was working on 5.6 version without any issues. In 5.7 server gets 100% CPU usage and query never ends. Anyone could help on this please?
I must add this too: If I extract the actual query from the "delete_me_Test" view and add the variable there to test
SELECT
(select @row_nummer:= @row_nummer+1),
...
rest of the selct field statements
from many tables in the select command;
Query works as expected without any issue. Its just when I use it as a view it gets screwed.
I'm using MySQL on windows server 2008 with all updates are installed. Is this a bug?
EDIT: Explain of above query with variable assigned
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived2> | | system | | | | | 1 | 100.00 | |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
| 1 | PRIMARY | <derived3> | | ALL | | | | | 222724 | 100.00 | |
| 3 | DERIVED | tbl_su | | ALL | | | | | 26712 | 100.00 | |
| 3 | DERIVED | tbl_su_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_su.suOperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_requested_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_su.tbl_SU_requested_Region | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_maritalstatus | | eq_ref | PRIMARY,maritalStatusID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suMaritalStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_gender | | eq_ref | PRIMARY,gender_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su.suGender | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_sectionandcategory | | eq_ref | SectionAndCatID_UNIQUE | SectionAndCatID_UNIQUE | 4 | ccmsv2.tbl_su.suSectionAndCatID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_su_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_su.updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_section_category | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionCatID | 1 | 100.00 | |
| 3 | DERIVED | tbl_section | | eq_ref | PRIMARY | PRIMARY | 4 | ccmsv2.tbl_su_sectionandcategory.sectionID | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_sub | | ref | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | fk_tbl_su_occupancyAgreement_sub_tbl_SU1_idx | 110 | ccmsv2.tbl_su.uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed | | eq_ref | PRIMARY,bedid_UNIQUE,bedid | bedid_UNIQUE | 4 | ccmsv2.tbl_oa_sub.bed_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room | | eq_ref | PRIMARY,roomID_UNIQUE,roomID | roomID_UNIQUE | 4 | ccmsv2.tbl_property_room_bed.RoomID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_floor | | eq_ref | PRIMARY,RoomFloorID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.FloorID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_property | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_room.property_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa | | eq_ref | PRIMARY,oA_ID_UNIQUE,Occupancyid | PRIMARY | 4 | ccmsv2.tbl_oa_sub.oa_main_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa.oA_typeID | 1 | 100.00 | Using where |
| 3 | DERIVED | tbl_oa_os_sub | | eq_ref | PRIMARY,sub_status_id_UNIQUE | sub_status_id_UNIQUE | 4 | ccmsv2.tbl_oa.oA_OperationStatusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_bed_status | | eq_ref | PRIMARY,bed_status_id_UNIQUE,bed_status_id | PRIMARY | 4 | ccmsv2.tbl_property_room_bed.statusID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_room_type | | eq_ref | PRIMARY,ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_room.roomTypeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_region | | eq_ref | PRIMARY,regionID_UNIQUE,regionID | PRIMARY | 4 | ccmsv2.tbl_property.property_region_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_added_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_added_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_updated_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_oa.oA_updated_by_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_local_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.local_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_regional_manager | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.regional_manager_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_su_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_su_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_oa_os_middle | | eq_ref | PRIMARY,middle_status_id_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.middle_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_landlord | | eq_ref | PRIMARY,uuid_UNIQUE | PRIMARY | 110 | ccmsv2.tbl_property.landlord_uuid | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_proposed_to | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_on_behalf_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_property_proposed_by | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property.proposed_by_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_landlord_company | | eq_ref | PRIMARY | PRIMARY | 110 | ccmsv2.tbl_property_landlord.company_uuid | 1 | 100.00 | Using index |
| 3 | DERIVED | tbl_oa_os_main | | eq_ref | PRIMARY,idtbl_OperatonStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_oa_os_sub.booking_main_status_id | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_occupancy_type | | eq_ref | PRIMARY,occypancyType_ID_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property.property_occupancy_typeID | 1 | 100.00 | |
| 3 | DERIVED | tbl_property_os_sub | | ref | PRIMARY,propertyStatusID | PRIMARY | 4 | ccmsv2.tbl_property.property_operation_statusID | 1 | 100.00 | Using where; Using index |
| 3 | DERIVED | tbl_property_os_main | | eq_ref | PRIMARY,idtbl_property_operationStatusMain_UNIQUE | PRIMARY | 4 | ccmsv2.tbl_property_os_sub.tbl_property_operationstatus_mainID | 1 | 100.00 | Using index |
| 3 | DERIVED | <derived4> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_su.safeguarding_type_id | 2 | 100.00 | |
| 3 | DERIVED | <derived5> | | ref | <auto_key0> | <auto_key0> | 4 | ccmsv2.tbl_property.safeguarding_type_id | 2 | 100.00 | |
| 5 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 4 | DERIVED | tbl_safeguarding_type | | ALL | | | | | 22 | 100.00 | |
| 2 | DERIVED | | | | | | | | | | No tables used |
+---+---------+-------------------------------+--+--------+---------------------------------------------------+----------------------------------------------+-----+----------------------------------------------------------------+--------+--------+--------------------------+
mysql optimization mysql-5.7
mysql optimization mysql-5.7
edited Jan 14 '17 at 0:59
krish KM
asked Jan 13 '17 at 23:26
krish KMkrish KM
1064
1064
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Don't do the extra SELECT
, it is unnecessary.
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
A common technique for initializing the variable:
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_
JOIN ( SELECT @row_nummer := 0 );
My opinion on VIEWs
: Don't use them. But if you want to discuss an issue with them, we need to see both the CREATE VIEW
and the CREATE TABLE
for the underlying table(s). Also EXPLAIN SELECT ...
.
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
AVIEW
cannot run faster than the underlyingSELECT
. AVIEW
can be used to hide thing from casual users, or to compensate for a schema change.
– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "182"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f161041%2fmysql-using-variable-in-select-command-with-view-affecting-performance%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Don't do the extra SELECT
, it is unnecessary.
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
A common technique for initializing the variable:
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_
JOIN ( SELECT @row_nummer := 0 );
My opinion on VIEWs
: Don't use them. But if you want to discuss an issue with them, we need to see both the CREATE VIEW
and the CREATE TABLE
for the underlying table(s). Also EXPLAIN SELECT ...
.
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
AVIEW
cannot run faster than the underlyingSELECT
. AVIEW
can be used to hide thing from casual users, or to compensate for a schema change.
– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
add a comment |
Don't do the extra SELECT
, it is unnecessary.
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
A common technique for initializing the variable:
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_
JOIN ( SELECT @row_nummer := 0 );
My opinion on VIEWs
: Don't use them. But if you want to discuss an issue with them, we need to see both the CREATE VIEW
and the CREATE TABLE
for the underlying table(s). Also EXPLAIN SELECT ...
.
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
AVIEW
cannot run faster than the underlyingSELECT
. AVIEW
can be used to hide thing from casual users, or to compensate for a schema change.
– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
add a comment |
Don't do the extra SELECT
, it is unnecessary.
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
A common technique for initializing the variable:
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_
JOIN ( SELECT @row_nummer := 0 );
My opinion on VIEWs
: Don't use them. But if you want to discuss an issue with them, we need to see both the CREATE VIEW
and the CREATE TABLE
for the underlying table(s). Also EXPLAIN SELECT ...
.
Don't do the extra SELECT
, it is unnecessary.
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_;
A common technique for initializing the variable:
SELECT
@row_nummer:= @row_nummer+1, -- this is just a test not final code
delete_me_test_.*
from delete_me_test_
JOIN ( SELECT @row_nummer := 0 );
My opinion on VIEWs
: Don't use them. But if you want to discuss an issue with them, we need to see both the CREATE VIEW
and the CREATE TABLE
for the underlying table(s). Also EXPLAIN SELECT ...
.
answered Jan 14 '17 at 0:47
Rick JamesRick James
43.9k22360
43.9k22360
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
AVIEW
cannot run faster than the underlyingSELECT
. AVIEW
can be used to hide thing from casual users, or to compensate for a schema change.
– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
add a comment |
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
AVIEW
cannot run faster than the underlyingSELECT
. AVIEW
can be used to hide thing from casual users, or to compensate for a schema change.
– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
Hi & thx for the input. It didn't help either. I've added the exlplain result above. If viewes aren't good idea whats the purpose of views and whats the alternative? I might well place new question when i feel so.
– krish KM
Jan 14 '17 at 1:01
A
VIEW
cannot run faster than the underlying SELECT
. A VIEW
can be used to hide thing from casual users, or to compensate for a schema change.– Rick James
Jan 14 '17 at 4:32
A
VIEW
cannot run faster than the underlying SELECT
. A VIEW
can be used to hide thing from casual users, or to compensate for a schema change.– Rick James
Jan 14 '17 at 4:32
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
That's a long Explain! Dig into the code and find what leads to the first 2 lines and the last 3. They seem to be the worst; lets focus on them.
– Rick James
Jan 14 '17 at 17:03
add a comment |
Thanks for contributing an answer to Database Administrators Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f161041%2fmysql-using-variable-in-select-command-with-view-affecting-performance%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown