当前位置: 首页 > 面试题库 >

MySQL-SQL_BIG_SELECTS

傅朗
2023-03-14
问题内容

嘿,我一直在研究SQL_BIG_SELECTS,但是到目前为止,MySQL文档一直没有帮助。我正在寻找某种见解,以防止出现以下错误。

错误1104:SELECT将检查太多的记录,可能需要很长时间。检查您的WHERE,如果SELECT正确,则使用SET OPTION
SQL_BIG_SELECTS = 1

  1. MySQL决定查询多少行为“ BIG SELECT”?
  2. 适当的索引编制通常可以解决此问题吗?
  3. 是将SQL_BIG_SELECTS视为“最后的选择”,还是好的做法?
  4. 有人将如何在配置中设置“ SQL_BIG_SELECTS = 1”(无需执行查询)?
  5. 还有其他值得了解的替代方法吗?

提前致谢!


问题答案:
  1. MySQL根据“ max_join_size”的值确定查询是否为“大选择”。如果查询可能需要检查的行数超过此数目,则将其视为“大选择”。使用“显示变量”查看最大连接大小的值。

  2. 我认为,建立索引以及特别好的where子句可以防止发生此问题。

  3. SQL_BIG_SELECTS用于防止用户意外执行过大的查询。可以在mysql.cnf中将其设置为ON或在启动时使用命令行选项。

  4. 您可以在my.cnf或服务器启动时设置SQL_BIG_SELECTS。也可以使用进行会话设置SET SESSION SQL_BIG_SELECTS=1

  5. 不是我能想到的。我只是检查您的查询以确保您确实需要使用它。我们的服务器默认情况下将其打开,并且max_join_size非常大。



 类似资料:
  • 我有一个项目在玩!框架。我使用了MySQL5.1并添加了mysql-connector-依赖项,它工作得很好。 但是现在我需要将mysql升级到5.6,但是我找不到5.6的MySQL-Connector-。 在这种情况下,有人能提供一些走动吗?有没有可能有两个版本的mysql,其中一个用于项目,另一个用于我的其他需要,例如与数据库备份的集成,而这两个版本共享相同的数据库? 多谢.

  • 说明 常驻内存的程序在使用mysql时经常会遇到mysql gone away的错误,这个是由于程序与mysql的连接长时间没有通讯,连接被mysql服务端踢掉导致。本数据库类可以解决这个问题,当发生mysql gone away错误时,会自动重试一次。 依赖的扩展 该mysql类依赖pdo和pdo_mysql两个扩展,缺少扩展会报Undefined class constant 'MYSQL_A

  • cPanel的此功能允许远程服务器或Web应用程序访问您帐户上托管的数据库。 如果服务器或Web应用程序尝试访问您未提供访问权限的帐户上的数据库,则cPanel将不允许此主机访问您的数据库。 但是,如果您有一个应用程序,您希望授予其访问数据库的权限,则可以在此处添加其主机名或IP地址。 要访问此界面,请单击cPanel的Database Section中的Remote MySQL链接。 添加访问主

  • 一、索引 B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化 使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎 InnoDB MyISAM 比较 四、数据类型 整型 浮点数 字符串 时间和日期 五、切分 水平切分 垂直切分 Sharding 策略 Sharding 存在的问题 六、复制 主从复制 读写分离 参考资料 一、索引 B+

  • 我的sql数据库中有两个数据库表。第一个是个人表,另一个是付款明细。个人表中的自动递增id被用作付款明细的外键。我必须一次插入两个数据到这个表中。通常我应该插入数据到个人表中,并获得这一行的自动增量id,并将数据插入到付款数据表中。但是我有一些问题。 我无法使用我的sql SELECT查询获得自动增量IDeasily.because还有更多的colum要通过WHERE检查。 获取最后一个插入id不

  • 安装 我们将使用 Homebrew 安装 MySQL,同时也会安装 MySQL 的相关文件。 安装 MySQL: $ brew update # 这是一个好习惯 $ brew install mysql 在使用 MySQL 前,我们需要做一些设置: $ unset TMPDIR $ mkdir /usr/local/var $ mysql_install_db --verbose --user=`