Ограничение записей в SQL

Все вопросы/проблемы по установке и использовании.
Ответить
Artyom
Сообщения: 38
Зарегистрирован: 19 янв 2021, 14:16
Имя: Artyom Melkikyan
Откуда: Armenia, Yerevan

Ограничение записей в SQL

Сообщение Artyom »

Здравствуйте,

при создании очередной записи, выходит ошибка.


Database Error: 1069 - Too many keys specified; max 64 keys allowed
Query: ALTER TABLE app_entity_204 ADD INDEX idx_field_4756 (field_4756(128));
Page: /index.php?module=entities/fields&action=save&id=4756&token=R37PVtjr40
#0 includes/functions/database.php(99): mysqli_query()
#1 includes/classes/model/entities.php(554): db_query()
#2 includes/classes/model/fields.php(498): entities::prepare_field_index()
#3 modules/entities/actions/fields.php(158): fields::check_if_type_changed()
#4 index.php(31): require('...')
#5 {main}



В таблице app_entity_204, базы данных Rukovoditel, по команде SHOW INDEX FROM app_entity_204 видно, что присутствует максимальное количество записей, все 64 записи.
Каким образом или в каком конфиг файле можно увеличить возможность делать в таблице больше записей, назначив большее количество количество индексов.
Тип баз данных innodb.

Благодарю
Вложения
entity_204.JPG
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Ограничение записей в SQL

Сообщение support »

Это я так понимаю при создании поле для сущности?
Дело в том, что при создании некоторых полей автоматически создается индекс для этого поля. Это делается специально, чтоб ускорить поиск по этому полю.
Увеличит количество индексов можно в настройках базы на вашем сервере, если у вас выделенный сервер. Если нет, то увеличит не получится. Не создавайте такую большую таблицу, разбейте данные на несколько таблиц.
Artyom
Сообщения: 38
Зарегистрирован: 19 янв 2021, 14:16
Имя: Artyom Melkikyan
Откуда: Armenia, Yerevan

Re: Ограничение записей в SQL

Сообщение Artyom »

Да сервер выделенный, скажите пожалуйста требуются ли особые параметры в настройках базы key_buffer_size, innodb_buffer_pool_size, innodb_additional_mem_pool_size, innodb_log_file_size, table_cache, и т.д, во избежание перегрузок в приложении?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Ограничение записей в SQL

Сообщение support »

Если будет медленно работать, можно и увеличить.
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Ограничение записей в SQL

Сообщение alexinc »

Artyom писал(а): 26 июн 2025, 08:51 Здравствуйте,

при создании очередной записи, выходит ошибка.


Database Error: 1069 - Too many keys specified; max 64 keys allowed
Query: ALTER TABLE app_entity_204 ADD INDEX idx_field_4756 (field_4756(128));
Page: /index.php?module=entities/fields&action=save&id=4756&token=R37PVtjr40
#0 includes/functions/database.php(99): mysqli_query()
#1 includes/classes/model/entities.php(554): db_query()
#2 includes/classes/model/fields.php(498): entities::prepare_field_index()
#3 modules/entities/actions/fields.php(158): fields::check_if_type_changed()
#4 index.php(31): require('...')
#5 {main}



В таблице app_entity_204, базы данных Rukovoditel, по команде SHOW INDEX FROM app_entity_204 видно, что присутствует максимальное количество записей, все 64 записи.
Каким образом или в каком конфиг файле можно увеличить возможность делать в таблице больше записей, назначив большее количество количество индексов.
Тип баз данных innodb.

Благодарю
выдержка из документации:
https://dev.mysql.com/doc/refman/8.0/en ... imits.html
Так что только пересборка из исходников.
Artyom
Сообщения: 38
Зарегистрирован: 19 янв 2021, 14:16
Имя: Artyom Melkikyan
Откуда: Armenia, Yerevan

Re: Ограничение записей в SQL

Сообщение Artyom »

Ладно, спасибо
Ответить