2012-04-30 35 views
1

我设置了一个MySQL数据库和我不知道最好的方法来组织它:MySQL数据库的设计

我建立一个系统(PHP/MySQL的基础),其中几百人会正在执行对数据库的SELECT/UPDATE/SET/DELETE查询(可能大约50个同时)。我想如果他们都使用相同的数据库和表格,会有几千行。我可以将数据分割到多个表中,但是我必须确保它们都是统一的,并且作为管理员,我将通过cron运行一些SELECT DISTINCT查询来更新管理界面。

什么是接近最好的方法?我可以让每个人共享一个数据库吗?一张桌子?有几千行时会出现问题吗?我想随着时间的推移,将会有一个巨大的性能问题。

任何提示或建议,欢迎!

+0

我还需要防止人们看到/编辑其他人的记录_(行,不是真实的记录!)_我希望我可以通过预处理语句解决这个问题。这是可行的吗? – DesignGoggles

+0

如果你可以详细解释你想要做什么,我会试着帮你解决这个问题。通过我的主页与用户个人资料联系。祝你好运。 – ionFish

+0

基本上发生了什么是...人们正在他们的网站上更新我的数据库加载一段代码。然后代码片段就会读取我的数据库并向网站管理员返回一组数据。这是我能提供的尽可能详细的信息。 – DesignGoggles

回答

3

的MySQL/PHP可以很容易,只要你的服务器是足够强大处理这个问题。 MySQL喜欢RAM,并尽可能使用它(在你提供的限度内)。

如果你将有很多并发用户,那么我会建议看看使用innodb表而不是MyISAM(默认在MySQL版本< 5.5)。 Innodb在执行INSERT/UPDATE/DELETE等时锁定单个行,而不像MyISAM那样锁定整个表。

我们使用PHP/MySQL和会对我们的网站1000+的用户在同一时间(我们的主数据库服务器每秒造成大约4K查询)。

+0

感谢Innodb提示。我忘记了MyISAM锁定整个表格。随着项目规模的扩大,这将成为一个问题。 在一个表中把一切似乎是要走的路。关于服务器的功能,我在测试过程中几乎没有对它的容量造成影响,所以我应该在那里很好。 问题回答,谢谢! – DesignGoggles