中易网

mysql 数据库存储超长字符串的处理方案

答案:2  悬赏:0  
解决时间 2021-02-22 23:19
一个bbs系统关于如何保存用户提交的内容(可能会是很长的字符串,甚至是一篇文章),本人拟定一下两种方案,但是不知道改选择哪种好些,希望大家给点建议
方案一:直接将字符串保存到数据库中,但是我觉得这样做不够雅,毕竟提交的数据长度可能不一定,有的很长(一篇上万字的文章)有的可能就几个字,都放在数据库中甚至读取的时候由于是一次将其所有读取,会不会出现内存不够等其他情况
方案二:将用户提交的内容保存到一个服务器上的文件中去,而是把这个文件的路径保存到数据库中(文件的路径一般不担心太长),当需要读取数据时,先从数据库中得到文件名,然后根据文件名读取用户提交的内容

如果有谁做过bbs相关的,希望能给点建议,或是有什么更好的方法,也提出来分享下,谢了!
最佳答案
其实你的两种方案都可以,第二种也挺好的,以前我一般都用方案一那种,都存到数据库里,我没有测试过超长字符串存到数据库中的查询效率,和内存问题,不过你也可以这两种方案都用,过大的就存文件,小的就存数据库,用个字段做标识就行
全部回答
gzcompress产生特殊字符没问题,保存时用 addslashes(),我自己的经验是slash并没有真的被保存,取出数据后解压一点问题没有。将二进制的文件保存在数据库就这样。如果实在不放心,压缩后用base64_encode(),会增加1/3的量,但如果文本很长,这或许是可以忍受的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
太原市城区农村信用合作联社晋源信用社在什么
麻烦帮忙查询苹果4S具体信息,C8PJD7VQDTD2
爱他美奶粉白金版怎么样
毅博诚信我想知道这个在什么地方
cpa报名入口打不开该怎么办
45岁的女人适合什么样的化妆品那,开始衰老,
老婆失踪找不到
amazing怎么读
京开辅路/福瑞路(路口)怎么去啊,有知道地址
工商银行开户要复印身份证吗?
本人在佛山禅城南庄罗南,怎么坐车到东莞凤岗
凄字五行属什么?
三星上网本n220 上4g内存
巴蜀鱼庄二部地址在哪,我要去那里办事
长城齿轮涂什么颜色
推荐资讯
女人找一个情人这对家庭有无好处?
微信怎么制作背景
预算5000---6000配i7 1070够吗要是够麻烦说下
昨晚天下足球放的阿森纳队歌和法国国歌是同曲
重新排列单词,组成句子.
南京凭什么没有CPU
旺达超市我想知道这个在什么地方
27,37 ,41,58,61,73,83,95,11,14,3
车辆质押后使用权是否还是我?
手机自动安装japanese ime怎么卸载
360行车记录仪通电宝如何连线
关于是谁在无聊的材料作文
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?