首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL使用视图访问不同名称下的表

MySQL使用视图访问不同名称下的表
EN

Stack Overflow用户
提问于 2017-07-17 19:36:32
回答 2查看 46关注 0票数 1

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

因为我不想更改应用程序中每个位置的所有sql查询,所以我考虑创建一个mysql视图,它只是将这个表的内容映射到正常使用的表名。

这是一个合适的解决方案吗,或者它在处理大表格时会变得非常慢吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-17 19:46:29

简单视图(创建为SELECT * FROM table)的行为类似于指定的表性能。

它应该是适合您的情况的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2017-07-17 20:09:44

嗯,这很棘手。如果有多个表,那么一个快速而粗糙的版本如下所示

代码语言:javascript
复制
SELECT * FROM (SELECT * FROM table1
Union
SELECT * FROM table2
Union
SELECT * FROM table3) t

我想这会管用的。当然,您在分页、排序和搜索方面会遇到问题--因为您必须尝试对3个或更多的表执行此操作。

另一种方法是这样

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

代码语言:javascript
复制
ImportTable
name
id

现在,您可以在其中输入表的名称和要从中导入的最后一个id。

创建另一个表以导入记录

代码语言:javascript
复制
TableRecords
source
id 
field1
field2
 etc

现在运行ImportTable中的表,获取任何新记录,并将它们放入“`TableRecords”中。

现在,这变得非常简单,您可以查询TableRecords并进行分页、排序和搜索,而不会遇到以前的麻烦。

做一些每2分钟运行一次的东西,比如TableRecords会落后2分钟,但一切都会很容易,像梦一样运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45143255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档