gpt4 book ai didi

database-design - 如何设计对缓存友好的数据库表?

转载 作者:行者123 更新时间:2023-12-03 23:37:26 25 4
gpt4 key购买 nike

我想设计一个通过非常慢的网络链接访问的数据库。幸运的是,数据库本身是静态的。因此,我将使用积极的结果缓存。有时,在客户端运行时,表上可能还会发生其他插入和更新操作,因此我想设计一个低带宽系统,在该系统中,客户端可以确切地知道何时进行了更新,从而避免了检查远程数据库的麻烦。

我的想法是用两列创建一个特殊的表,一列是表的名称,另一列是版本号。该表永远不会被应用程序查询直接修改。它将使用存储过程进行更新。每当修改任何表时,存储过程都应增加此特殊表的编号。

然后,客户端可以将查询结果与表的版本号一起存储在本地数据库(例如sqlite)中。然后,下次在特殊表上运行一次select,并检查表是否已更改。

听起来如何?还有其他策略可以最大限度地减少冗余数据库带宽并积极地缓存数据库吗?不仅是跨平台的东西,而且编程语言的不同客户端也可以访问它(C,C ++,Obj-C,Python等),因此我试图找到在所有情况下都能工作的最简单的东西。

理想情况下,我希望将表设计为增量表(删除是实际的插入),因此我可以查询表的最高ID并与本地ID进行比较。但是,我不知道在哪里可以找到示例。读CouchDB's technical page会使我大怒。

最佳答案

如果您希望有许多使用多种不同语言编写的客户端访问该数据库,则可能要在客户端可以连接的数据库之上编写一个瘦服务器层。该服务器可以处理缓存,甚至可以gzip它通过网络发送的数据。然后,您的客户端可以只发送一条消息,询问自时间X以来的最新数据,而服务器可以返回仅所需的数据,或一条消息,指出“自时间X以来没有更改”。

关于database-design - 如何设计对缓存友好的数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com