Mysql创建大量表或更少表,哪个更好?
我目前正在开发一个webapp,它严重依赖于数据库中的大量数据。考虑下面的情况。 A)仅使用预定义表格进行表格设计Mysql创建大量表或更少表,哪个更好?,mysql,sql,database,Mysql,Sql,Database,我目前正在开发一个webapp,它严重依赖于数据库中的大量数据。考虑下面的情况。 A)仅使用预定义表格进行表格设计 1)table vehicle_type ------------------ id|name ------------------ 1 |car 2 |truck 3 |bike ------------------- 2)table users ------------------- id|name ------------------- 1 |James 2 |John 3
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
3 |Stefen
-------------------
3)table ownership
--------------------------------
id|vehicle_type_id|user_id|count
--------------------------------
1 | 1 |1 |30
2 | 1 |3 |20
3 | 3 |2 |13
--------------------------------
B)表格设计,使用应用程序逻辑动态创建表格,即当车辆类型中出现新条目时,我们将使用该名称创建一个新表格
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
-------------------
3)dynamic_table car
-------------------
id|user_id|count
-------------------
1 |1 |20
2 |2 |10
-------------------
3)dynamic_table truck
-------------------
id|user_id|count
-------------------
1 |3 |15
2 |2 |20
3 |1 |12
-------------------
4)dynamic_table bike
-------------------
id|user_id|count
-------------------
1 |1 |4
2 |2 |12
-------------------
在第二种情况下,表vehicle_type充当动态表的键。首先,我使用所有权表来存储每个车主拥有的车辆类型计数数据,其次,我为每个车辆类型创建动态表,并将每个车辆类型计数存储在单独的表中。我认为这种方法将使数据库的扩展相对容易,查询效率更高,而不是使用单个所有权表
我从来没有处理过大量的数据,但这一次肯定会有大量的数据。
请注意,上表用作样本,而不是实际应用程序逻辑的一部分
请说明每种方法的优缺点
谢谢我不知道什么是动态表。对于“哪一个更好”这个问题,并没有一个单一的正确答案。所以这取决于项目。以下是一些可能的观点 第一种方法(一张表): 优点:
- 启动代码/时间/工作量更少李>
- 易于维护(可能不是这样)李>
- 查询可以覆盖整个数据集李>
- 随着数据集的增长,您可能会申请处理性能问题李>
- 数据集增长更快李>
- 不太灵活(例如,特定车型有一些额外的所有权属性)李>
- 可能更灵活李>
- 规模可能会更好一些李>
- 更多代码/时间/精力开始李>
- 难以维护(可能是错误的)李>
作为一般建议:考虑数据访问模式。这应该有助于你理解
- 您将使用什么查询
- 他们中哪一个会更经常被处决
- 会有更多的读或写操作吗
- 您将分发哪些数据