Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
Php MySQL使用view以不同的名称访问表_Php_Mysql - Fatal编程技术网

Php MySQL使用view以不同的名称访问表

Php MySQL使用view以不同的名称访问表,php,mysql,Php,Mysql,我有一个关于mysql表的性能和最佳实践问题。 我正在开发一个连接到数据库的应用程序,该数据库由其他程序填充。 该系统部署在不同的网络位置,不同位置的某些数据库表的名称可以更改(但这些表等中的字段保持不变) 由于我不想更改应用程序中每个位置的所有sql查询,所以我考虑创建一个mysql视图,它只是将此表的内容镜像到正常使用的表名 这是一个合适的解决方案,还是在使用大表时速度会非常慢?简单视图(创建为SELECT*fromtable)的行为与指定的表性能类似 这应该是一个适合您的解决方案。嗯,这很

我有一个关于mysql表的性能和最佳实践问题。 我正在开发一个连接到数据库的应用程序,该数据库由其他程序填充。 该系统部署在不同的网络位置,不同位置的某些数据库表的名称可以更改(但这些表等中的字段保持不变)

由于我不想更改应用程序中每个位置的所有sql查询,所以我考虑创建一个mysql视图,它只是将此表的内容镜像到正常使用的表名

这是一个合适的解决方案,还是在使用大表时速度会非常慢?

简单视图(创建为
SELECT*fromtable
)的行为与指定的表性能类似


这应该是一个适合您的解决方案。

嗯,这很棘手。如果有多个表,那么一个快速而肮脏的版本应该是

SELECT * FROM (SELECT * FROM table1
Union
SELECT * FROM table2
Union
SELECT * FROM table3) t
我想这会管用的。当然,您在分页、排序和搜索方面会遇到问题,因为您必须在3个或更多的表上尝试这样做

另一种方式是这样

使用表名和计数器创建一个表

ImportTable
name
id
现在,您可以在这里输入表的名称和要从中导入的最后一个id

创建另一个表以导入记录

TableRecords
source
id 
field1
field2
 etc
现在运行一些东西,通过
importable
中的表获取任何新记录,并将它们推到“TableRecords”中

现在,这变得非常简单,您可以查询
TableRecords
,并进行分页排序和搜索,而无需以前的麻烦


每2分钟运行一次,比如说
TableRecords
将落后2分钟,但一切都会非常简单,运行起来就像做梦一样。

因此,您有一个应用程序,其中一个数据库连接到其他数据库,在该表中查看(名称更改)所有表的结果?Q1。其他程序员也只是导入或更新吗?是否有更新字段?@Richard Housham,不,我的应用程序与其他应用程序共享数据库,并且有一些表是我的应用程序刚刚读取的。其他的程序只是写(但是不可能改变他们正在写的表)。好的,听起来不错。语句中没有连接或其他内容,因此应该可以。