【发布时间】:2012-12-02 18:29:46
【问题描述】:
我一直在寻找一些优化技巧,因为我正在做一个使用 MySQL 通过 PHP 存储数据的 RPG 修改。
我正在使用一个唯一的表通过他的唯一 ID 将所有用户信息存储在列中,并且我必须为每个用户存储(很多?)数据。武器和其他信息。
我正在使用爆炸和内爆作为存储武器的方法,例如,在具有“文本”值的列中。我不知道这是否是一个好习惯,我不知道如果我让成千上万的玩家执行大量的 UPDATES 、 SELECT 等请求,我是否会遇到性能问题。
我了解到,Junction 表可能更好地存储武器和所有这些信息,但我不知道这是否会获得您通过 explode 方法请求的更好的信息。
我的意思是,我应该将所有武器存储在一个不同的表中,每个武器都有他的信息(每个武器都有一些信息,比如不同的列,我在主爆炸中使用多重爆炸)和用户所有者武器来识别武器,而不仅仅是将它们放在一列中。
至少可以存储 100 个项目,我不知道在不同的表上为每个用户创建 100 条记录并始终调用所有记录是否比仅调用列并使用爆炸更好.
我还想提高我的技能和知识,以制作性能最好的 MySQL 数据库。
我希望有人能告诉我一些事情。
谢谢,对不起我愚蠢的英语语法。
【问题讨论】:
-
您应该阅读一些有关数据库规范化以及如何连接表的内容。您所做的将意味着您需要代码来分离武器。如果网站变得更大,这将成为维护的噩梦。
-
作为一般规则,拥有数百万个正确索引的行比拥有数千个索引错误的行要好。想象一个查询来查找谁拥有特定武器 - 使用联结表,这很容易。使用explode/implode,您必须计算数据库中每一行的内容。
标签: php mysql database optimization