MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354

MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354

 

[SQL]EXPLAIN ALTER TABLE `answer` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '修改字符集为utf8mb4,兼容表情符' AFTER `qid`;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE `answer` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE' at line 1

 

 

MySQL Bugs: #80793: EXTEND EXPLAIN to cover ALTER TABLE https://bugs.mysql.com/bug.php?id=80793

Bug #34354 Feature request: EXPLAIN ALTER TABLE
Submitted: 6 Feb 2008 17:04

MySQL Bugs: #80793: EXTEND EXPLAIN to cover ALTER TABLE https://bugs.mysql.com/bug.php?id=80793

Bug #80793 EXTEND EXPLAIN to cover ALTER TABLE
Submitted: 18 Mar 2016 16:03

MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354

 

 

 

[6 Feb 2008 17:04] Paul Dubois
Description:
In MySQL 5.1, work was done to make some ALTER TABLE operations faster, with no need for a temporary table (such as changes that affect only metadata), as described here:

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

However, a user cannot tell in advance whether a given operation will be fast or not, and thus must actually execute ALTER TABLE and hope that it will be fast.

An EXPLAIN-style statement would be useful for ALTER TABLE. I envision that EXPLAIN ALTER TABLE would provide information to the user that would indicate the "cost" of a given alteration.

How to repeat:
N/A
[6 Feb 2008 19:32] Valeriy Kravchuk
Thank you for a reasonable feature request.
[18 Oct 2016 8:51] Daniël van Eeden
A duplicate of this bug:
Bug #80793 	EXTEND EXPLAIN to cover ALTER TABLE



[18 Mar 2016 16:03] Simon Mudd
Description:
ALTER TABLE now has many ways of working and that can be a bit confusing even for a seasoned MySQL DBA especially as things change all the time.

How to repeat:
Run ALTER TABLE and see which behaviour happens depending on the statement you execute.

There are various possible behaviours:

1. METADATA change, no change to data
2. INLINE change, no full rebuild and apps can use the table while the change is happening (e.g. new indexes being added)
3. TABLE REBUILD, traditional full rebuild of the table

Suggested fix:
I'd like to see EXPLAIN EXTENDED to show what it would do with the ALTER TABLE statement.

There are other subtle things that may trigger a full rebuild of the table including changes due to data type changes (e.g. the "old" and "new" timestamp or datetime formats), so having a way to see what MySQL would do without actually triggering the action would be really good.
[18 Jun 2016 21:36] Omer Barnir
Posted by developer:
 
Reported version value updated to reflect release name change from 5.8 to 8.0
[19 Jul 2016 8:06] Umesh Shastry
Hello Simon,

Thank you for the feature request!

Thanks,
Umesh
[16 Oct 2016 19:11] Morgan Tocker
Duplicate of BUG #34354




posted @ 2018-12-19 17:01  papering  阅读(260)  评论(0编辑  收藏  举报