频繁随机读取数据库性能优化问题
我用的是postgres. 客户端一刷新,就要从服务器随机取5条数据。
如果用
select field1, field2,field3 from table1 order by random() limit 5
这样就会频繁的随机读取数据库,生成的field1,field2,field3将会用文件流发送到客户端。
如果table1数据量很大,每次随机取会造成性能下降。
有什么办法可以优化?
比如把所有数据先取出来放到内存或者硬盘,然后每次客户端需求随机5条数据时候,从内存或者硬盘随机取5个文件。这样效率会好些吗?
------解决方案--------------------如果表很大,放在内存或磁盘上都不合适,还是不能解决问题。可以先随机在表中抽取一定数量的记录,比如10万条,放入内存,然后在这10万条中随机抽取
------解决方案--------------------把你的结果放在内存,然后在内存里在查找,这样快多了