database - 分离成只读/只写数据库

标签 database

很多人说通过创建只读和只写的数据库可以获得更高的性能,坦白说,我不能完全理解。有人告诉我,写会需要很多不同的锁,这会减慢读的速度。。。但是据我了解,系统中很多读是不需要锁的,比如oracle consistent read,锁对读有什么影响呢?此外,如果我想分片数据库,读/写分离是否提供更多值(value)?
您能否详细解释或提供一些外部资源来说明为什么读写分离可以提供更高的性能,谢谢。

最佳答案

一方面,分离读取和写入允许您的数据库使用主从复制进行扩展。

在主从复制中,master 可以处理读和写,而 slaves 只能处理读。然后从服务器复制在主服务器上完成的任何写语句。

这允许读取密集型应用程序将读取分散到多台机器上。但是,如果您的应用程序执行大量写入操作但读取操作不多,您可能看不到任何好处。

在您的应用程序中从一开始就将读取和写入分开,使您可以灵活地随时采用主从路线,而且并不难做到。当不需要此类功能时,您可以简单地让您的数据库抽象对两者使用相同的连接。

关于database - 分离成只读/只写数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7118184/

相关文章:

php - 无法从服务器 2 中的 Apache 连接到服务器 1 上的 MySQL 实例

Java DB 表继承?

database - 在 Linux/POSIX 系统上获取用户全名的最简单方法是什么?

php - CodeIgniter:$this->load->database() 出错;

android - 从数据库中删除所有数据时如何重置自动增量int?

php - 试图在 laravel 5.2 中获取非对象的属性

database - 现在适用于 Windows Phone 7 的可行本地数据库是什么?

mysql - 使Linux上的MYSQL可以被远程访问

android - java.lang.RuntimeException : Unable to start activity 错误

php - Symfony 2/Doctrine - 始终可用的数据库连接?