2017-07-24 116 views
0

我需要將url保存到mysql表中我還需要通過它們的url搜索行。爲了提高性能,我想爲URL列添加UNIQUE索引。UNIQUE INDEX - 指定的密鑰太長;最大密鑰長度是767字節

CREATE TABLE `fp_feeds_in_records` (
    `id` bigint auto_increment NOT NULL, 
    `url` varchar(1000) NOT NULL, 
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    unique unique_url (val) 
) ENGINE=InnoDB 

但是當我運行CREATE語句,我得到錯誤信息:Error Code: 1071. Specified key was too long; max key length is 767 bytes。 urls我需要保存太長,所以我不能使用varchar(255)作爲其他答案建議。 MySQL版本是5.6.35。

我該如何解決?

回答

1

不幸的是,沒有真正的解決方案。您唯一的選擇是減小列的大小,使用不同的字符集(如UTF-8),或使用不同的引擎(如MYISAM)。在這種情況下,我將字符集切換爲UTF-8,將UTM-8的最大密鑰長度提高到255個字符。

相關問題