gpt4 book ai didi

mysql - 设计 MySQL 数据库的技巧

转载 作者:行者123 更新时间:2023-11-30 23:46:15 25 4
gpt4 key购买 nike

我正在为一个列表网站设计一个 mysql 数据库。这是我第一次,我在谷歌上搜索了一下:)我想交叉检查我的方法是否有任何问题。

基本上,我将有 5 张 table 。让我们说

  1. 工作室(实际工作室数据点)
  2. 工作室设施(如交通、水等)
  3. 工作室图片
  4. 工作室评论。 (姓名、星级等。)
  5. 位置和地点(城市、城市方向、地点,例如类加罗尔、北类加罗尔、Hebbal)。

所以 Studio 表将保存主记录。设施、图像和评论将使用工作室作为 FK 来保存数据。位置 ID 将保存在工作室记录中。

我现在的问题是,如果我想显示所有 hebbal 工作室的列表,我将必须执行所有 5 个表的连接以显示工作室数据、图像、评论和设施。

1) 这样可以吗?您认为这种方法有任何潜在问题吗?有没有更好的方法?
2)查询执行时间会不会随着记录数的增加而增加?

谢谢

最佳答案

这看起来是一个可靠的方法,数据库被设计为使用连接并且这些是合适的。与您当前的设计相比,非规范化会导致更多问题,尤其是在数据完整性方面,

查询会随着数据的增多而变慢吗?他们当然会,但任何设计都是如此。通过网络或互联网发回 10 g 数据会比发送 10 个字节慢。

您没有询问,但您是否可以采取一些措施来防止查询变得 Not Acceptable 地变慢?是的。首先,您需要确保将在 where 子句中频繁出现的外键和字段以及 PK 建立索引。这足以防止大多数简单查询出现糟糕的性能。

你应该做的另一件事是阅读一本关于你正在使用的特定数据库后端性能调优的好书。我读过的大多数书至少有一章是关于设计性能查询的。阅读它并重新阅读它并重新阅读它,直到它沉入你的骨头并且你不会考虑以任何其他方式编写查询。

许多数据库被认为速度很慢,因为它们的开发人员不具备编写高性能查询的能力,并且连接受到指责。了解 sargabilty。了解索引如何工作以及使用它们的权衡是什么。在性能受到影响之前了解您的表可以有多宽(提示有时一对一关系中的两个表比使用一个表更快,因为表会非常宽。)。

如果没有扎实的性能调优基础,您就无法有效地设计数据库。

关于mysql - 设计 MySQL 数据库的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35498820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com