我是MySQL新手。
我正在使用MySQL创建一些Web服务,但我不确定使用数据库的最佳方法是什么。
一个是具有大量项目的一个数据库,并且在查询后不断地进行行。 另一个是动态创建db数据库。
数据库数据库由每个用户的一些问题组成,问题的数量不固定。
答案 0 :(得分:1)
在数据库中动态创建新表是well known antipattern。
首先,它实际上使编码更加困难,因为您需要在查询中满足动态表名称。
其次,可能更重要的是,它可能对数据库性能极为不利。根据您使用的存储引擎,无论何时查询表,MySQL都需要从磁盘上的1(InnoDB)到3(MyISAM)文件打开。当您需要在短时间内查询许多表时,这会给您的文件系统带来一丝压力。
另一方面,如果您将所有数据都放在一个表中,MySQL将在您第一次查询时尝试将其加载到内存中,并且所有后续读取将使用内存访问而不是磁盘访问,使事情变得更快。