我有一个我通过加入几个表格创建的视图,其记录可以更改,因此视图列的内容也可以更改 。 视图的列包含地址,随机数,日期,一些随机字符串等数据。
我接受来自用户的搜索文本,如果其中任何一列包含用户输入的文字,则返回行。
我的观点有数百万条记录如此正常,如查询无法工作(需要很长时间)? 搜索此视图的最有效方法是更改,因为其表格已更改?
我使用的是oracle数据库,C#,entityframework。
答案 0 :(得分:1)
为了获得更好的性能,你应该在原始表中正确添加索引。每次更改时rdbms引擎都会自动刷新这些索引..所以你不可能通过索引值获取错误的数据..索引值和表数据包含相同的值..
您不需要每次重新索引...有时(每月)您可以更新相关的统计信息..
所以索引可以更好地改变你的表现..这也适用于视图
创建在原始表顶部的视图,并且不是原始表的存储副本..因此索引可以帮助视图更快地呈现预期结果..
索引正确设计索引时,在数据库服务器中用于重要目的:
他们让rdbms
来自mysql https://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html
https://dev.mysql.com/doc/refman/5.5/en/column-indexes.html https://dev.mysql.com/doc/refman/5.5/en/multiple-column-indexes.html
http://code.tutsplus.com/tutorials/top-20-mysql-best-practices--net-7855