用实体表代替视图提升数据库速度

编程入门 行业动态 更新时间:2024-10-28 15:22:00

用实体表代替<a href=https://www.elefans.com/category/jswz/34/1770164.html style=视图提升数据库速度"/>

用实体表代替视图提升数据库速度

遇到了一个项目,数据库速度非常慢,即便是一个很普通的读取数据也要5、6秒的时间。当时,我拿到了网站的账号,但是却没有程序的源代码。这可怎么搞?
通过查看数据库数据,发现所有操作都会先经过一个视图查询。通过了解数据库逻辑知道,相同的数据进行了分表,但是在查询的时候,又需要在这些数据中寻找到唯一的那一条。原来的做法是利用视图对这些分表进行了集合查询。因为视图没有索引一说,所以速度就会变得很慢。
因为没有源代码,又不想重新做网站,就只能从数据库这里想办法。
首先想到的就是加内存。如果将数据全部调入内存,应该会加快速度。可是加大内存后却没有什么效果。想来是数据一直在变动,所以视图也在更新,根本做不到保存在内存。但是,改动的内存还是保留了下来。
接下来,能想到的就是不用视图。用数据库查询可以看到视图的创建代码。用相同的代码新建了一个表,试着查询了一下,速度一个字就飞了起来。
要想程序能够从这个表中查询,又将这个表改成了视图的名字。这样,程序查询的SQL语句就能直接找到这个表。
还有一个问题,就是要求各个分表更新的时候,这个表也只能同步更新。好在,MySQL还有触发器功能。在分表新建一条数据的时候,直接触发,在这个表中同步更新。
经过以上处理,现在数据库和程序倒是能够稳定运行了。当然,这样打补丁的做法肯定不能长久,最好的办法还是直接重做一遍网站。

更多推荐

用实体表代替视图提升数据库速度

本文发布于:2024-02-26 05:10:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701452.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:视图   实体   速度   数据库

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!