欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教php保存数据的方案,谢谢!

程序员文章站 2024-02-18 23:06:52
...
小弟有个数据查询的网站,预计数据量很大,我起初想为了查询方便就插入mysql中,但实测下来每天插入的数据量可能在100M以上,如果用mysql估计成本增加,还不知道效率怎么样。
所以我想用文件形式保存数据,考虑过txt,xml,这样读取文件稍微麻烦点也不好紧。不过我最近想到,能不能用序列化的办法保存成文件?(因为我那些数据本质上属于一些数组数据),如果全部序列化,读取的时候直接反序列化那么效率应该会快得多?
想听听高手的意见,谢谢!!


回复讨论(解决方案)

查询读取的次数应该数量级多于写入吧?不用数据库用文件,IO会耗死机器的

查询读取的次数应该数量级多于写入吧?不用数据库用文件,IO会耗死机器的

确实,这样只好考虑数据库了。。。。

只有缓存不经常变化的数据才是有意义的,否则检查数据是否更新的开销也是不可忽略的
如果你的数据只是一些数组数据,那么最高效的就是保存 var_export 的结果到程序文件
使用时只需 include 即可

用文件不如用sqlite,文件且带sql查询

不清楚楼主说的成本指哪方面
建议楼主谷歌下PostgreSQL,mysql内存数据库,以及maria
文档类型简单数据也可考虑nosql,如couchdb,mongodb等


-----------------------------------------------------
另外,如果不考虑IO,性能,查询插入并发啥的,可以把生成php文件用变量放数组或序列化后的数据

试试mogonDB啊,存储序列化数据还是很方便的,跟php的连接读取也很成熟,读xml和txt肯定没读数据库快的

只有缓存不经常变化的数据才是有意义的,否则检查数据是否更新的开销也是不可忽略的
如果你的数据只是一些数组数据,那么最高效的就是保存 var_export 的结果到程序文件
使用时只需 include 即可

版主讲的狠对,另外将var_export的结果保存在一个文件php文件中同时设置下缓存时间,这样就既可以保证缓存还可以保证不频繁查询数据库,当然要用数据库保存的话插入是必不可少的嘛。还能有什么办法减少插入的次数的同时还能保证数据不变?大概只能保证少链接下数据库了吧?请指教

不需要 设置缓存时间 !
设置缓存时间 是一种被动方式,无论数据是否变化,时间一到就都要重写缓存。既然是想用缓存来提高速度,那么任何一点浪费都是不应该的
你可以在更新数据成功后,即可更新缓存!