在 MySQL 中保存数据和进行备份的最便捷方法
我的一位同事建议我应该为每个客户端创建不同的数据库(MySQL),这样如果一个帐户被盗用,我们只需要恢复单个数据库的备份。我担心快速访问数据:哪个更快?从数千个数据库中选择一个数据库,还是从单个数据库的表上的数千个条目中查找条目?而且,就速度和可靠性而言,什么更方便:备份大型数据库还是大量小数据库?另外,有没有一种方法可以只备份表中的一个条目,如果有的话,是否比备份大量小数据库或大数据库更好?
我正在使用的系统基于 PHP/MySQL 和 jQuery(Javascript 和 AJAX),如果有帮助的话。
one of my colleagues suggested that I should make different databases (MySQL) for each client, so that if one account is compromised, we only need to restore a backup of a single database. I'm concerned about a fast access to the data: which is faster? selecting a database among thousands of them, or finding an entry among thousands on a table from a single database? And also, what's more convenient, in terms of speed and reliability: to backup a large database, or a large number of little ones? Also, Is there a way to backup only one entry in a table, and if there is, is it better than backing up lots of little databases or a large one?
The system I'm using is based on PHP/MySQL and jQuery (Javascript and AJAX), if it helps.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您肯定希望每个客户端使用不同的数据库。使用不同的数据库比尝试从组合表模式查询记录要快得多,而且更安全(如果每个数据库使用不同的帐户)。
根据您的数据库引擎,MYISAM或INNODB等,也有不同的备份策略。其他性能问题,例如,MYISAM 是更新记录时的表级锁定,如果所有内容都使用同一个表,这将非常慢。
根据您的备份策略和数据库引擎,您可以使用mysqldump 或 <如果您使用 MYISAM 表,则使用 mysqlhotcopy 进行即时备份。
You definitely want to use a different database per client. Using a different database is much faster than trying to query a record from a combined table schema as well as being more secure(if you use different accounts per database).
Depending on your database engine, MYISAM or INNODB, etc there are different backup strategies as well. Other performance issues for instance, MYISAM is table level locking when a record is being updated which will be very slow if everything is using the same table.
Depending on your backup strategy and database engine you can use mysqldump or mysqlhotcopy for on the fly backups if you use MYISAM tables.