Closed Bug 605663 Opened 14 years ago Closed 14 years ago

Doing SHOW TABLE STATUS in checksetup is slow

Categories

(Bugzilla :: Installation & Upgrading, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 4.2

People

(Reporter: mkanat, Assigned: mkanat)

Details

Attachments

(1 file)

On a large database, one of the slowest parts of checksetup is calling SHOW TABLE STATUS on MySQL to get the engine type of each table. (On my local copy of bmo, it takes 5 seconds with a cold cache, and 3 seconds with a warm cache.)

A MUCH faster query is this:

SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'bugs';

That does require MySQL 5, though. I think we're pretty much safe requiring MySQL 5 for trunk at this point, though. I don't think that 4.1 is even supported anymore.
Attached patch v1Splinter Review
r=mkanat as database and installation module owner.

This bumps our MySQL requirement to 5.0.15.
Assignee: installation → mkanat
Status: NEW → ASSIGNED
Attachment #484539 - Flags: review+
Flags: approval+
Note that I also removed the ISAM conversion code, because MySQL 5 doesn't support ISAM, so the code could not possibly run, now.
Committing to: bzr+ssh://bzr.mozilla.org/bugzilla/trunk/
modified Bugzilla/Constants.pm
modified Bugzilla/DB/Mysql.pm
Committed revision 7549.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
(In reply to comment #2)
> Note that I also removed the ISAM conversion code, because MySQL 5 doesn't
> support ISAM, so the code could not possibly run, now.


MySQL 4.1 EOL was December 31, 2009. Is the removal of the ISAM conversion code going to prevent upgrading from some old installations? If yes, which ones?
We must relnote in bold that Bugzilla 4.2 is going to require MySQL 5.0.15 or newer.
Keywords: relnote
(In reply to comment #4)
> MySQL 4.1 EOL was December 31, 2009. Is the removal of the ISAM conversion code
> going to prevent upgrading from some old installations? If yes, which ones?

  Well, in order for anybody to move to MySQL 5, they would have to convert their tables to MyISAM themselves, before importing their mysqldump into MySQL 5. So, for example, anybody running on a modern server would already do that.

  I believe the last version of Bugzilla to create ISAM tables was 2.16. The MyISAM conversion code was added in bug 99203. 

  Most of the servers that would be running Bugzilla 2.16 can't run any modern version of Bugzilla anyhow--they wouldn't have a new-enough Perl or MySQL even for Bugzilla 3.0 or 3.2. So, more or less, all people running 2.16 would have to convert their tables to MyISAM before switching servers anyway, meaning that we're not adding any new requirements there.
Added to relnotes in bug 713346.
Keywords: relnote
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: