Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中测试表是否存在最有效的方法是什么?_Mysql - Fatal编程技术网

MySQL中测试表是否存在最有效的方法是什么?

MySQL中测试表是否存在最有效的方法是什么?,mysql,Mysql,我正在尝试删除/减少应用程序中的浪费查询,以提高速度。我有一个查询检查表是否存在。它通过尝试从表中选择主键字段并将“Limit 1”添加到查询的末尾,这样就不会选择整个表 我的问题是:确定表是否存在的最有效方法是什么,还是有更有效的方法 要了解更多信息,我可能无法从信息模式中进行选择,因为并非所有用户都可以访问该表 编辑 该应用程序允许安装插件,其中一些插件集成了第三方系统。上述查询用于检查用户是否正确输入了第三方系统的数据库信息。首先,系统连接到数据库,如果成功,则尝试使用用户指定的表前缀查询

我正在尝试删除/减少应用程序中的浪费查询,以提高速度。我有一个查询检查表是否存在。它通过尝试从表中选择主键字段并将“Limit 1”添加到查询的末尾,这样就不会选择整个表

我的问题是:确定表是否存在的最有效方法是什么,还是有更有效的方法

要了解更多信息,我可能无法从信息模式中进行选择,因为并非所有用户都可以访问该表

编辑

该应用程序允许安装插件,其中一些插件集成了第三方系统。上述查询用于检查用户是否正确输入了第三方系统的数据库信息。首先,系统连接到数据库,如果成功,则尝试使用用户指定的表前缀查询表。您可以使用SHOW TABLES命令。要测试它是否像某个名称,请尝试:

SHOW TABLES LIKE 'nameOfTable';
根据,展示台的完整规格为:

显示[完整]表[{FROM|IN}db_name] [如“模式”| WHERE expr]

SHOW TABLES列出给定数据库中的非临时表。您还可以使用mysqlshow db_name命令获取此列表。LIKE子句(如果存在)指示要匹配的表名。WHERE子句可用于使用更一般的条件选择行,如第18.19节“显示语句的扩展”所述

可以使用“显示表格”命令。要测试它是否像某个名称,请尝试:

SHOW TABLES LIKE 'nameOfTable';
根据,展示台的完整规格为:

显示[完整]表[{FROM|IN}db_name] [如“模式”| WHERE expr]

SHOW TABLES列出给定数据库中的非临时表。您还可以使用mysqlshow db_name命令获取此列表。LIKE子句(如果存在)指示要匹配的表名。WHERE子句可用于使用更一般的条件选择行,如第18.19节“显示语句的扩展”所述

您是否尝试过显示类似“Tablename”的表格?您可能也无法访问它。

您是否尝试过显示类似“Tablename”的表格?您可能也无法访问它

SHOW TABLES LIKE "tablename";
此处有更多示例和教程:


更多示例和教程请参见:

MySQL 5.0以后的版本,以下是实现此功能的方法:

SELECT COUNT(*)
       FROM information_schema.tables 
       WHERE table_schema = '[database name]'
             AND table_name = '[table name]';
我过去也这样做过:

`SHOW TABLES WHERE Tables_in_<database-name> = "<table-name>"`

MySQL 5.0以后的版本,这是实现此功能的方法:

SELECT COUNT(*)
       FROM information_schema.tables 
       WHERE table_schema = '[database name]'
             AND table_name = '[table name]';
我过去也这样做过:

`SHOW TABLES WHERE Tables_in_<database-name> = "<table-name>"`

任何原因显示表格;不行吗?你能解释一下为什么要这样做吗?你的应用程序怎么不知道存在哪些表?SHOW tables可能会工作,但我想讨论一下在速度和内存方面什么是最有效的。此外,是否所有用户都有权运行“显示表格”命令?是否有任何原因显示表格;不行吗?你能解释一下为什么要这样做吗?你的应用程序怎么不知道存在哪些表?SHOW tables可能会工作,但我想讨论一下在速度和内存方面什么是最有效的。此外,是否所有用户都有运行“SHOW TABLES”命令的权限?