ERROR 1104: The SELECT would examine too many records and probably take a very long time. Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok
Hay veces que ciertas aplicaciones utilizan unas cantidades de recursos que MySQL por defecto limita para evitar consumir recursos por tiempo prolongado.
MySQL limita esto gracias a ciertas variables como max_join_size.
Esta variable está relacionada directamente con otra, sql_big_selects.
Poner cualquier valor diferente del DEFAULT reseta el valor de sql_big_selects a 0. Si configuras por contra sql_big_selects otra vez, la variable max_join_size es ignorado.
Si nos encontramos con el error antes mencionado quizá debemos hacer uso de esta variable. Si queremos aplicarlo en running time haremos:
# SET GLOBAL max_join_size=18446744073709551615;
o bien, editaremos el fichero de configuración de MySQL my.cnf:
max_join_size=1024M
Si queremos el valor por defecto, simplemente, dejaremos el my.cnf sin este valor especificado y tomará el por defecto:
mysql -uroot -p -e "show variables like '%max_join_size'" +-------------------+----------------------+ | Variable_name | Value | +-------------------+----------------------+ | max_join_size | 18446744073709551615 | | sql_max_join_size | 18446744073709551615 | +-------------------+----------------------+
Comentario: no se puede poner directamente el valor por defecto como max_join_size=18446744073709551615. Esto hace detener el servicio por algún problema. Mejor dejar el valor sin configurar y que coja este número por defecto.