Here are a few questions I came up with while experimenting with MySQL 5.6.7 & 5.6.8. They are the impressions of a first-time encounter with 5.6, which is a single opportunity for a person to point out the things that strike as odd.
Bugs-wise, just submitted another crashing bug for 5.6.8. I’m just one man, so I extrapolate to realize there is still much work to be done.
The below list does not necessarily make for a bug list; mostly things that puzzle me. I hope it can stir some additional thinking.
- Transportable tablespace: what’s the difference between FLUSH TABLES my_table WITH READ LOCK and FLUSH TABLES my_table FOR EXPORT? Both create the .cfg file, and both seem to operate just as well. One document says READ LOCK, another says FOR EXPORT.
- What’s the ALGORITHM=? flag in online ALTER TABLE? Apparently one can write to altered table even on ALGORITHM=COPY. There’s not enough documentation to explain.
- How come there’s not a single example of online InnoDB DDL in official docs?
- Why the inconsistency of putting ALGORITHM=…, LOCK=… in between commas, as opposed to other flags/commands not between commas? For example: ALTER TABLE my_table ADD COLUMN i INT, ALGORITHM=COPY, LOCK=SHARED, ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4
- Why would anyone care about FULLTEXT search word proximity by bytes? Typically, one would want proximity by words. I can find the excuse for proximity by characters. By bytes? A user is not interested in the low level representation of the text!
- Could we get a distinct tablespace for the mysql internal InnoDB tables? (I understand there’s a separate tablespace for UNDO logs)
- Why the need to configure gtid_mode=ON as well as disable-gtid-unsafe-statements so as to enable GTID replication? If only the first is set, an error is produced upon CHANGE MASTER TO MASTER_AUTO_POSITION=1
- And when said error is produced, why does it not mention disable-gtid-unsafe-statements, and instead read out a cryptic message? Also note this post by Giuseppe Maxia.
Hello Shlomi!
Regarding:
“Why the inconsistency of putting ALGORITHM=…, LOCK=… in between
commas, as opposed to other flags/commands not between commas? For example:
ALTER TABLE my_table ADD COLUMN i INT, ALGORITHM=COPY, LOCK=SHARED,
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4”
Clauses in ALTER TABLE are normally separated by comma (‘,’). For
example, as in “ALTER TABLE t1 ADD COLUMN i INT, ALGORITHM=INPLACE”.
What can be confusing here is that clause that allows to set new options for
table can lookslike “ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4”.
I.e. that we allow use of spaces for separator between options.
From the view point of ALTER TABLE syntax this is a single clause, which
consists of several subclauses and which is separated from other clauses,
like ADD COLUMN…, ALGORITHM=… and LOCK=…, using commas.
In short, ALGORITHM and LOCK are not similar to table options like ENGINE, but more like ADD COLUMN, ADD KEY clauses.
Regards,
Dmitry
@Dmitry, thanks
Thanks for the feedback, Shlomi!
7. –enforce-gtid-consistency (earlier called –disable-gtid-unsafe-statements) prevents execution of statements that are
incompatible with GTIDs. –gtid-mode=ON turns on GTIDs. We made two different options, so that you can first check that your application is compatible with GTIDs, and then in a second step you can turn on GTIDs. It is impossible to set –gtid-mode=ON without –enforce-gtid-consistency.
8. We double-checked this and we do generate the correct error messages. Did you by any chance use –gtid-mode=1 instead of ON? That would explain the message. Please note that gtid-mode is an enumeration with four values, not a boolean, so 1 and ON are not the same. It was wrongly documented as boolean in an early version of the documentation and this has now been fixed.
@Lars,
7 – thank you for the clarifications. So “–enforce-gtid-consistency” stands on its own, so as to validate that my application confirms to possible GTID use; then, when I’m convinced, I turn GTID on — did I get it right? That makes sense.
8 – Now in the error log I do get:
121121 13:00:41 [ERROR] –gtid-mode=ON or UPGRADE_STEP_1 requires –disable-gtid-unsafe-statements
Which is indeed a clear message. I must have missed the update!
@shlomi,
7. Yes, that is the idea.
8. Great, thanks for re-testing!