我是靠谱客的博主 大气老鼠,最近开发中收集的这篇文章主要介绍mysql5.5版本密钥,如何在MySQL 5.1中增加密钥长度?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

When running a Rails migration that creates an index, I get:

Mysql::Error: Specified key was too long; max key length is 1000 bytes: CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`, `bar_id`, `baz_id`)

What MySQL variable do I need to set to increase this, and where do I set it so it affects all sessions, and not just the current client session?

解决方案

InnoDB actually only allows 768 BYTES in the index. Also, note that UTF-8 encoded strings take up 3 bytes per character, so you only have 768 / 3 chars to play with in the index in that case.

A possible solution is to limit the length of the field use in the index. However, since you also want a unique index, that might not be an acceptable solution for you. Use the following to limit the length of the fields used.

CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))

最后

以上就是大气老鼠为你收集整理的mysql5.5版本密钥,如何在MySQL 5.1中增加密钥长度?的全部内容,希望文章能够帮你解决mysql5.5版本密钥,如何在MySQL 5.1中增加密钥长度?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部