SQL_BIG_SELECTS

[Удален]
4414

Появилась одна проблема, не пойму как разобраться. Захожу в phpmyadmin, выбираю базу, затем выбираю таблицу и появляется ошибка:

#1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay

Такую ошибку я уже получал на сайте, исправил путем внесения SET SQL_BIG_SELECTS=1 при подключении к базе. Но вот куда вписывать это значение в phpmyadmin?

Работать с таблицейч через phpmyadmin не могу теперь.

U
На сайте с 09.04.2015
Offline
28
#1

В my.cnf укажите

[Удален]
#2
umercomp:
В my.cnf укажите

Указывал - сервер mysql после этого не запускался.

N
На сайте с 06.05.2007
Offline
419
#3

riasv, так это max_join_size надо указывать.

Лучше покажите что там сейчас в my.cnf. Подозреваю, что есть max_join_size и он специально указан низким.

phpmyadmin не должен выдавать сложные запросы при всего лишь простом просмотре таблицы.

Между прочим, значение параметра max_join_size по-умолчанию 18446744073709551615. Именно такое большое. Оно как бы намекает, что изменение его совсем не является "оптимизацией".

Кнопка вызова админа ()
[Удален]
#4

Вот что в файле my.cnf:


[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe]
log-error=/var/log/mysql.log
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

bind-address = 127.0.0.1


innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 16M
max_join_size = 1000000
table_open_cache = 512
key_buffer = 2048M
key_buffer_size = 2048M
max_allowed_packet = 16M
thread_stack = 512K
thread_cache_size = 32
tmp_table_size = 512M
sort_buffer_size = 4M
myisam_sort_buffer_size = 256M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
join_buffer_size = 100M
net_buffer_length = 1024
myisam-recover = BACKUP
max_connections = 300
wait_timeout = 1800
interactive_timeout = 1800
#table_cache = 64
thread_concurrency = 8

query_cache_limit = 200M
query_cache_size = 16M
query_cache_type = 2

log_error = /var/log/mysql/error.log

expire_logs_days = 10
max_binlog_size = 100M

[mysqldump]
quick
quote-names
max_allowed_packet = 128M

[mysql]

[isamchk]
key_buffer = 256M

!includedir /etc/mysql/conf.d/

Увеличил значение max_join_size как вы указали, получил ошибку при рестарте mysql: Restarting mysql (via systemctl): mysql.serviceJob for mysql.service failed. See 'systemctl status mysql.service' and 'journalctl -xn' for details.

failed!

H
На сайте с 05.05.2015
Offline
61
#5
netwind:
Между прочим, значение параметра max_join_size по-умолчанию 18446744073709551615. Именно такое большое. Оно как бы намекает, что изменение его совсем не является "оптимизацией".

Худо будет, когда вызовут Вам несколько JOIN к нескольким таблицам с десятками миллионов записей в каждой

Но если это "личный" сервер, то да, лимит можно повысить

N
На сайте с 06.05.2007
Offline
419
#6

riasv, надо просто убрать это значение.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий