Bug #37124

db-compare should check for available storage-engines

Added by Stefan Neufeind about 1 year ago. Updated about 1 year ago.

Status:New Start date:2012-05-12
Priority:Should have Due date:
Assignee:- % Done:

0%

Category:-
Target version:-
TYPO3 Version:4.4 Complexity:
PHP Version:
Votes: 1 (View)

Description

Currently if you have MySQL with, for example, disabled InnoDB (for reasons out of scope of this ticket) db-compare will insist that db-changes are needed. But that storage-engine can't be set since it is not available. So for the easy case TYPO3 might still want to leave it as is (MyISAM in the usual case).

Example:
ALTER TABLE tx_realurl_pathcache ENGINE=InnoDB;
Current value: ENGINE=MyISAM
ALTER TABLE tx_realurl_chashcache ENGINE=InnoDB;
Current value: ENGINE=MyISAM
ALTER TABLE tx_realurl_urldecodecache ENGINE=InnoDB;
Current value: ENGINE=MyISAM
ALTER TABLE tx_realurl_urlencodecache ENGINE=InnoDB;
Current value: ENGINE=MyISAM

History

Updated by Markus Klein about 1 year ago

Also applies to all other branches. Also tested with 4.7.

Updated by Susanne Moog about 1 year ago

In my opinion we should write a note in INSTALL.txt about usage of InnoDB in the core. Something like: Be aware that TYPO3 uses the InnoDB storage engine on certain tables. Please make sure to have InnoDB available. If you for some reason have no InnoDB available TYPO3 will probably still work, but there could be some side effects.

(Also because making it optional would mean we should test performance, locking etc with both storage engines all the time, and that does not make sense).

What do you think?

Updated by Stefan Neufeind about 1 year ago

I think we could add a warning in install-tool and/or db-analyser that expresses TYPO3 might still work but it's recommended to enable InnoDB.

For performance I don't think we should really care, if we give that "warning".

Do we do much locking anyway? (I just don't know.) I was under the impression that due to being SQL-portable as possible (DBAL, ...) we don't do much in that department yet. How would MySQL behave if you tell it to lock but MyISAM can't do that (missing support for transactions)?

My intention was just that I think the thing about "oh, I've found an update - you should turn on InnoDB" and if you do it it comes back with "and how about InnoDB" is ... suboptimal.

Updated by Markus Klein about 1 year ago

Please keep in mind that on some hosting providers you're simply not able to turn on InnoDB or you have to pay extra money.
For small sites it doesn't make much of a difference if InnoDB is not available, but the storage engine warnings are quite annoying.

I think placing a textual warning in the install tool would suffice and by adding the check for available storage engine we get much more usability.
(Just to write it here once: These warnings also show up, whenever one uses the Database Update tab of extensions, which is also really annoying.)

Also available in: Atom PDF