Code

Opened 2 years ago

Closed 2 years ago

Last modified 2 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 claudep 2 years ago.
Updated documentation

Download all attachments as: .zip

Change History (9)

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

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

comment:2 Changed 2 years ago by nate_b

  • Triage Stage changed from Unreviewed to Accepted

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 2 years ago by claudep

  • 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 2 years ago by nate_b

  • 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 2 years ago by claudep

Updated documentation

comment:5 Changed 2 years ago by claudep

  • Patch needs improvement unset

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

comment:6 Changed 2 years ago by nate_b

  • Triage Stage changed from Accepted to Ready for checkin

Now we're talking. :)

comment:7 Changed 2 years ago by aaugustin

  • Resolution set to fixed
  • Status changed from new to closed

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 2 years ago by aaugustin

In [17553]:

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

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.