准备写一个小说网站 想大佬们给点思路,数据库这么设计,数据是存mysql 还是 文件txt 还是 xml 怎么样设计性能好呢

小说网站、高性能 数据库设计、 采用 PHP + Mysql + Redis 等、
看过论坛、有人说 小说保存 txt文件 或者 xml 格式、mysql 存txt文件地址(分页咋搞呢)、 想问一下 各位大佬,有没有思路,或者建议,怎么样能提高性能呢。

阅读 15.3k
3 个回答

分页用 MySQL 实现就可以了

MySQL 只存储小说标题,文件的路径,有人要阅读小说,就从 MySQL 找到路径然后读取文件,再存进 Redis 缓存里

给个表设计思路

小说表

字段名称 数据类型 大小 描述
id int 11 小说表主键
title varchar 128 小说名
desc varchar 255 简介
author varchar 16 作者
noveltype varchar 16 小说类型
tags varchar 256 小说标签

章节表

字段名称 数据类型 大小 描述
id int 11 主键
title varchar 256 章节标题
novel_id int 11 小说ID(属于哪部小说)
file_path varchar 1024 文章路径
is_delete tinyint 3 删除标识
words int 11 字数
ctime timestamp - 创建时间
mtime timestamp - 修改时间

用 MySQL 实现随便分页,机器好的话上千万数据也没问题

个人建议:
不要用文件来实现,文件多的话后期会有麻烦,而且性能、数据一致性、安全性不能得到保障,如果真的要用文件来实现建议用安全的分布式文件系统来储存
小说不是什么大文件,用 MySQL + Redis 就完全没有问题, 再增加一个小说内容表就好,然后章节表做一些修改,完整设计如下

小说表

字段名称 数据类型 大小 描述
id int 11 小说表主键
title varchar 128 小说名
desc varchar 255 简介
author varchar 16 作者
noveltype varchar 16 小说类型
tags varchar 256 小说标签

章节表

字段名称 数据类型 大小 描述
id int 11 主键
title varchar 256 章节标题
novel_id int 11 小说ID(属于哪部小说)
content_id varchar 1024 文章内容id,对应内容表id
is_delete tinyint 3 删除标识
words int 11 字数
ctime timestamp - 创建时间
mtime timestamp - 修改时间

内容表

字段名称 数据类型 大小 描述
id int 11 主键
content text - 章节内容
新手上路,请多包涵

小说内容为什么不存在章节表里?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题