Doing SHOW TABLE STATUS in checksetup is slow

RESOLVED FIXED in Bugzilla 4.2

Status

()

--
enhancement
RESOLVED FIXED
8 years ago
7 years ago

People

(Reporter: mkanat, Assigned: mkanat)

Tracking

Bugzilla 4.2
Bug Flags:
approval +

Details

Attachments

(1 attachment)

(Assignee)

Description

8 years ago
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.
(Assignee)

Comment 1

8 years ago
Created attachment 484539 [details] [diff] [review]
v1

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+
(Assignee)

Updated

8 years ago
Flags: approval+
(Assignee)

Comment 2

8 years ago
Note that I also removed the ISAM conversion code, because MySQL 5 doesn't support ISAM, so the code could not possibly run, now.
(Assignee)

Comment 3

8 years ago
Committing to: bzr+ssh://bzr.mozilla.org/bugzilla/trunk/
modified Bugzilla/Constants.pm
modified Bugzilla/DB/Mysql.pm
Committed revision 7549.
Status: ASSIGNED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED

Comment 4

8 years ago
(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?

Comment 5

8 years ago
We must relnote in bold that Bugzilla 4.2 is going to require MySQL 5.0.15 or newer.
Keywords: relnote
(Assignee)

Comment 6

8 years ago
(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.

Comment 7

7 years ago
Added to relnotes in bug 713346.
Keywords: relnote
You need to log in before you can comment on or make changes to this bug.