【问题标题】:Is it viable to translate a table with view?用视图翻译表格是否可行?
【发布时间】:2014-11-05 12:59:37
【问题描述】:

问题:我有一个 30~ish 表数据库,其中所有表/列都是英文的。我正在考虑创建视图以使其全部以另一种语言可读,即每个表有一个视图,所有列都有别名。

原因:我的一位老板(知道如何使用数据库的人)不喜欢知道数据库全是英文,但他只在为时已晚时才开口,而且重建成本太高。现在该软件将有一个管理工具,用于使用纯 SQL 提取 PDF 报告。您输入 SQL 并获得包含结果的 PDF。

成本:我正在研究视图,它们似乎很昂贵,this question 特别让我觉得这样做不是一个好主意。

【问题讨论】:

  • 我不确定我会这样做。我认为用两种语言维护数据库将是一件非常头疼的事情——即使一组表实际上是另一组表的视图。如果是我,我会使用表示层/应用程序级代码(假设你有一个)来处理语言环境问题。

标签: mysql sql performance view


【解决方案1】:

在这种情况下,查看性能的更好参考是documentation 本身。 MySQL 使用两种方法来处理视图,一种称为“merge”,另一种称为“temptable”。视图的大多数性能问题都是由于“诱惑”,

merge 的使用存在重大且重要的限制。但是,对您来说很高兴的是,重命名列不在其中。因此,简单地重命名列的视图可以使用“合并”:

create view v_table as
     select col1 as col_1, col2 as col_2
     from table t;

因此,您可以为每个表编写单独的视图,重命名列,您不必担心性能问题。您确实需要担心维护,但这完全是另一个问题。

【讨论】:

  • 您的创建视图语句与文档本身相反。如果我理解正确,我应该将算法定义为合并,对吧?
  • @MarcoAurélioDeleu 。 . .我会明确将算法定义为“合并”。然后检查以确保确实使用了“合并”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多