Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#17573 closed Uncategorized (fixed)

Documentation: MySQL 5.5 switched to InnoDB as default storage engine

Reported by: Lenz Hirsch <hirsch@…> Owned by: nobody
Component: Documentation Version: 1.3
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

The Django documentation states here https://docs.djangoproject.com/en/1.0/ref/databases/#storage-engines "The default engine is MyISAM ...". This is not true since MySQL Version 5.5. InnoDB is the default now. See: http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html

In consequence also manage.py syndb creates InnoDB tables by default.
This can lead to misleading error messages of manage.py (which is not the fault of manage.py) like:

Failed to install index for ... model: Specified key was too long; max key length is 767 bytes

Although this messages indicates the index could not be installed it is!
The index gets automatically shortened to 255 bytes and is therefore no full "covering index" but a "prefix index" which seams not to be a real performance issue.

Maybe some of these facts could be incorporated to the django documentation to help MySQL users that will tend to stumble about this error more often the more MySQL 5.5 is used.

Attachments (1)

17573-1.diff (2.3 KB) - added by Claude Paroz 5 years ago.
Updated documentation

Download all attachments as: .zip

Change History (9)

comment:1 Changed 5 years ago by Lenz Hirsch <hirsch@…>

Needs documentation: unset
Needs tests: unset
Patch needs improvement: unset
Summary: Documentation misses MySQL 5.5 switch InnoDB as default storage engineDocumentation: MySQL 5.5 switched to InnoDB as default storage engine

comment:2 Changed 5 years ago by Nate Bragg

Triage Stage: UnreviewedAccepted

Indeed, the dev docs say the same. The mysql docs say:

InnoDB is the default storage engine as of MySQL 5.5.5.
[...]
MyISAM is supported in all MySQL configurations, and is the default storage engine prior to MySQL 5.5.5. 

This ought to be updated.

comment:3 Changed 5 years ago by Claude Paroz

Has patch: set

I also fixed the section about not supporting fixtures, as the issue has been fixed for the InnoDB storage engine in 1.4.

comment:4 Changed 5 years ago by Nate Bragg

Patch needs improvement: set

Although perhaps a fine patch, it looks like you might have intended to upload a different one, as this one doesn't appear to address the problem.

Changed 5 years ago by Claude Paroz

Attachment: 17573-1.diff added

Updated documentation

comment:5 Changed 5 years ago by Claude Paroz

Patch needs improvement: unset

Wow :-( Sorry, now hopefully it is the good one!

comment:6 Changed 5 years ago by Nate Bragg

Triage Stage: AcceptedReady for checkin

Now we're talking. :)

comment:7 Changed 5 years ago by Aymeric Augustin

Resolution: fixed
Status: newclosed

In [17552]:

Fixed #17573 -- Documented MySQL's switch to InnoDB as default storage engine. Thanks Lenz Hirsch for the report and Claude Paroz for the patch.

comment:8 Changed 5 years ago by Aymeric Augustin

In [17553]:

[1.3.X] Fixed #17573 -- Documented MySQL's switch to InnoDB as default storage engine. Backport of r17552 from trunk.

Note: See TracTickets for help on using tickets.
Back to Top