我很想知道我目前所知道的数据库。我知道如何为我碰巧正在创建的任何webapp设置数据库后端,但这就是全部。例如,如果我创建三个不同的应用程序,我只需创建三个不同的数据库,然后为特定的应用程序配置每个数据库。这些都是简单的知识,我现在想要更深入地了解数据库的实际工作方式。
让我们说我开发了一个应用程序,例如需要大量空间和处理能力。然后,这个数据库必须分布在众多机器上。数据库究竟是如何分布在众多计算机上的,并且仍然可以写入记录然后再记录它们。每张桌子都有自己的机器,需要什么软件才能确保不同的机器都成功完成了交易。
正如你所看到的,我非常喜欢数据库无知。
任何帮助清除这一点将不胜感激。
答案 0 :(得分:1)
我不知道你正在使用什么RDBMS,但我有两本书的建议。
对于理论(在我看来应该首先出现):Database in Depth: Relational Theory for Practitioners
实施:High Performance MySQL: Optimization, Backups, Replication, and More
我拥有这两本书并且它们都很棒,尤其是第一本。
答案 1 :(得分:1)
这是一个相当广泛的主题......您可能希望从Multi-master replication,High-availability clustering和Massively parallel processing开始。
答案 2 :(得分:0)
如果您想知道如何让数据库在不断增加的负载下运行,那么这不是一个基本问题。一些知名的网络公司正在努力寻找使其数据库可扩展的正确方法。
如果您的应用程序是读取密集型的,则使用memcached缓存数据库信息是减少数据库负载的一种方法。如果您的应用程序是写密集型的,那么您可能需要考虑使用像MongoDB或Redis这样的NOSQL数据存储区。
答案 3 :(得分:0)
Database Design for Mere Mortals
如果您对数据库没有任何经验,这是关于该主题的最佳书籍。它有历史背景和实际例子。大多数书籍经常跳过历史的东西,因为他们假设你知道数据库是什么,或者无关紧要,然后跳到实际的地方。这本书为您提供了完整的图片。