我需要为网站存储大约100个设置。我可以将其保存为数据库中的一行,也可以将其另存为JSON文件,并在设置中读取每个页面,并在设置更改时更新文件。或者我可以通过db调用将其读入页面。哪个是首选方法?我试图最大限度地提高绩效。
的 的 *** *编辑
这是一个标准的网站。一个主页和大约10个其他页面。关于,联系,等等,等等,等等。每个页面都有相同的信息/主题设置。此信息可由网站所有者更新。下面是配置,例如......有一天,所有者决定更改其页脚的颜色。他会进行更改,并会写入color_footer
键以保存更改。
这是一个示例配置文件。这似乎太少了,无法进行数据库调用。想法?
$GLOBALS = array(
"theme" => array(
"color_scheme" => "#429a44",
"color_body" => "#ffffff",
"color_nav" => "#333333",
"color_footer" => "#333333",
"page_width_front" => "max-width: 100%;",
"page_width_inner" => "max-width: 1024px;",
"font_color_scheme" => "#ffffff",
"font_color_body" => "#ffffff",
"font_color_nav" => "#ffffff",
"font_body" => "font-family: 'Francois One', sans-serif;",
"font_nav" => "font-family: 'Open Sans', sans-serif;",
"font_body_size" => "font-size: 15px;",
"font_nav_size" => "font-size: 25px;",
"slider_width" => "max-width: 1024px; margin: auto;",
"slider_interval" => "5000"
),
"social_links" => array(
"facebook" => "",
"twitter" => "",
"instagram" => "",
"youtube" => "",
"flickr" => "",
"pinterest" => "",
"google-plus" => "",
"foursquare" => "",
"linkedin" => "",
"tumbler" => "",
"vimeo" => ""
),
);
答案 0 :(得分:1)
如果您的数据具有简单的表格结构并且它将是相同的,那么关系模型可能就足够了,但是如果您的数据结构太复杂且具有多个级别,那么您必须使用nosql或JSON结构存储您的数据。 您必须记住的另一件事是您要存储的数据量。在RDBMS情况下的行数,因为达到一定的限制,RDBMS将比几乎所有的NoSQL执行得更快,但是当你的数据gorws时,从像Cassandra或Mongo这样的NoSQL获取将比从mysql获取更快。
答案 1 :(得分:1)
首先要确认: 整个网站是否只有1个设置配置文件(约100个设置)? 或者网站中每个页面的1个设置配置文件(约100个设置)?
如果只有1个个人资料: (1)对于存储,我认为磁盘上的DB或JSON文件都可以; (2)但是你提到每个页面访问都会读取配置文件,如果访问频率很高, 你应该将配置文件保存在内存中(只是一个从JSON字符串转换而来的对象)。 并记得在更新时写回DB / Disk。
如果每页有1个个人资料:
对于访问权限,您可以尝试采用一些缓存产品(例如Redis)
实际上我对你的设计感到困惑。 为什么保持这样的设置?