一个数据库,包含大量项目,而不是动态生成的许多数据库

时间:2012-02-14 06:14:09

标签: mysql database dynamic structure

我是MySQL新手。

我正在使用MySQL创建一些Web服务,但我不确定使用数据库的最佳方法是什么。

一个是具有大量项目的一个数据库,并且在查询后不断地进行行。 另一个是动态创建db数据库。

数据库数据库由每个用户的一些问题组成,问题的数量不固定。

1 个答案:

答案 0 :(得分:1)

在数据库中动态创建新表是well known antipattern

首先,它实际上使编码更加困难,因为您需要在查询中满足动态表名称。

其次,可能更重要的是,它可能对数据库性能极为不利。根据您使用的存储引擎,无论何时查询表,MySQL都需要从磁盘上的1(InnoDB)到3(MyISAM)文件打开。当您需要在短时间内查询许多表时,这会给您的文件系统带来一丝压力。

另一方面,如果您将所有数据都放在一个表中,MySQL将在您第一次查询时尝试将其加载到内存中,并且所有后续读取将使用内存访问而不是磁盘访问,使事情变得更快。