Mysql sql视图是正确的解决方案吗

Mysql sql视图是正确的解决方案吗,mysql,sql,sql-server,performance,Mysql,Sql,Sql Server,Performance,我有一个名为“Customers”的表,其中包含了关于不同类型用户的所有信息,包括用户、驱动程序、管理员,我现在无法将此表分开,因为它正在生产中,现在不适合这样做 因此,如果我创建3个视图:第一个视图只有用户类型,第二个视图有驱动程序,第三个视图有管理员 我的目标是在我正在进行的项目中使用3个模型,而不是一个 这是一个好的解决方案吗?它的性能成本是多少 你的“顾客”桌子有多大?根据它的名字,它听起来不像重的。 多久查询一次这些视图? 对于要在视图的where子句中使用的属性,是否有一些索引或pk

我有一个名为“Customers”的表,其中包含了关于不同类型用户的所有信息,包括用户、驱动程序、管理员,我现在无法将此表分开,因为它正在生产中,现在不适合这样做

因此,如果我创建3个视图:第一个视图只有用户类型,第二个视图有驱动程序,第三个视图有管理员

我的目标是在我正在进行的项目中使用3个模型,而不是一个 这是一个好的解决方案吗?它的性能成本是多少

你的“顾客”桌子有多大?根据它的名字,它听起来不像重的。 多久查询一次这些视图? 对于要在视图的where子句中使用的属性,是否有一些索引或pk约束? 我现在无法分开这张桌子,因为它正在工作 生产,这不是一个适当的时间做这件事


从你所说的来看,这听起来像是一个暂时的解决方案,所以可能是个好办法。稍后,您可以用三个表替换视图,这样不会影响界面。

我建议,让最终用户直接登录数据库是不合适的。相反,所有请求都应该通过用户必须登录的数据库访问层API。该层可以提供您所需的过滤,而不会对用户造成任何影响。该层在构造所需的SELECT时,会附加上,例如,type='admin'以实现目标


为了提高性能,您可能还需要在某些索引的开头添加类型。

视图似乎是正确的解决方案。就个人而言,我从来都不是视图的忠实粉丝。。。它们很简单,但从性能角度看,它们可能代价高昂。如果有这个选项,我将首先研究表值函数。它们很容易使用,也可以由参数驱动。他使用哪个数据库系统真的很重要吗。是的,@nbk,特别是当我们开始建议替代方案和/或提供代码示例时。SQL Server和MySQL之间可用的功能和语法差异可能非常不同。例如,@johncapelletti建议使用TVF,但是,我相信MySQL对它们没有这样的支持,除非这在最近的历史中有所改变?@wolfgangkai抱歉,我不同意。就像任何事情一样,都是关于上下文和实现,