大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习架构😊
数据库进行分片和扩展是大型应用系统中常用的技术手段,可以提高系统的性能和可扩展性。在进行分片策略的设计时,一般会考虑多租户、数据种类、范围和哈希散列等方式进行分片,同时也需要考虑业务要求和数据使用模式。
其中,按多租户方式进行分片可以将租户隔离开来,按数据种类分片可以保证同一分片中的数据是连续的,通过范围来分片可以提高数据库操作的效率,按哈希散列算法来分片可以降低形成热点的可能性。但是,哈希散列算法分片也存在跨库跨表的查询和事务问题以及扩容时需要重新哈希数据的问题,因此应该谨慎使用。
在进行数据库扩展的设计时,需要将数据库和应用服务一同拆开,即一个服务对应一个库的方式。这样可以实现微服务的玩法,也可以避免在一个单体的库上进行读写分离或分片的方式,而是在服务化的小数据库上进行操作。这是整个设计模式的原则——先做服务化拆分,再做分片。
总之,数据库分片和扩展的设计需要从业务的角度入手,而不是从技术的角度入手,同时需要根据具体的业务要求和数据使用模式进行选择和优化,才能实现系统的高效性和可扩展性。
此文章为4月Day2学习笔记,内容来源于极客时间《左耳听风》 这门课真的非常好,推荐大家看看