ViciDial: MyISAM указанный ключ был слишком длинным; максимальная длина ключа 1000 байтов - PullRequest
0 голосов
/ 27 марта 2019

Я установил MariaDB в Ubuntu 14.04 и пытаюсь запустить некоторые сценарии, которые предоставляет основное решение (ViciDial).Когда я пытаюсь выполнить файл Sql, он выдает ошибку в следующем операторе CREATE TABLE:

CREATE TABLE www_phrases (
phrase_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
phrase_text VARCHAR(10000) default '',
php_filename VARCHAR(255) NOT NULL,
php_directory VARCHAR(255) default '',
source VARCHAR(20) default '',
insert_date DATETIME,
index (phrase_text)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Ошибка:

ERROR 1071 (42000) at line 3348: Specified key was too long; max key length is 1000 bytes

Статус MariaDB:

MariaDB [DialerDB]> status;
-------------- 
mysql  Ver 15.1 Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:          53 
Current database:       DialerDB 
Current user:           root@localhost 
SSL:                    Not in use 
Current pager:          stdout 
Using outfile:          '' 
Using delimiter:        ; 
Server:                 MariaDB 
Server version:   10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 
Protocol version:       10 
Connection:             Localhost via UNIX socket 
Server characterset:    utf8mb4 
Db     characterset:    utf8mb4 
Client characterset:    utf8mb4 
Conn.  characterset:    utf8mb4 
UNIX socket:  /var/run/mysqld/mysqld.sock 
Uptime:                 1 hour 15 min 49 sec

Насколько я понимаю, предел в MyISAM равен 1000, а в более новых версиях - около 3200, поэтому, если varchar равен 10000, это ошибка, верно?Но это программное обеспечение установлено правильно, если оно выполнено через установщик (образ ISO), и таблицы БД одинаковы ... поэтому для этого должен быть какой-то конфиг, ограничивающий мою MariaDB.

Есть идеи?

1 Ответ

0 голосов
/ 08 мая 2019

Если в этом столбце есть «текст», предложите заглянуть в индекс FULLTEXT; он будет достаточно эффективно искать слова.

Компиляция ограничений: здесь ; 10K не будет работать для простого индекса.

(Между тем вам следует перейти от MyISAM к InnoDB.)

...