请问怎么样设计数据库才能让程序更具有扩展性

2019-03-25 13:47|来源: 网路

我想让自己的程序和用户即将扩展的程序共用一个会员,应该怎么设计数据库和程序呢,怎么才能达到这样呢。
问题补充:
这是一个好友给我的建议
映射表只有两列,第一列存原先用户的id,第二列存论坛用户的id,同一行说明是一个用户,上论坛,通过论坛id再去查论坛表

相关问答

更多
  • memcached是基于内存的软件。 首先可以作为提升系统性能的工具。如果将memcached作为应用系统的cache服务,那么数据库不需要做任何改动。 其次可以将memcached与mysql整合为数据服务层。有两种方式。第一种是将memcached的内存容量作为mysql数据库的二级缓存,以此提升mysql的缓存容量。第二种是通过msyql的UDF(userdefined function interface)来与memcached进行数据通信,维护和更新memcached中的数据。应用程序直接通过me ...
  • Oracle的RAC体系结构是可扩展的,它可以在节点间进行负载均衡,并行查询可以拆分并推送到其他节点进行处理。 一些技巧就像从另一个节点的缓冲区缓存加载块而不是磁盘,使性能更具可扩展性。 此外,RAC的滚动升级可维护性有助于使大型系统的运行更加健全。 可伸缩性还有一个不同方面 - 存储可伸缩性。 ASM增加了存储容量,非常简单。 一个精心设计的基于ASM的解决方案,应该可以超过100兆兆字节的大小,而不需要做任何特别的事情。 这些是否使Oracle比其他RDBMS更具可扩展性,我不知道。 但是我想我会对尝试 ...
  • 这实际上取决于你的问题,每个数据库类型都有它的优点,而且SQL还没有noSQL在扩展方面更好,它们是不同的。 这一切都取决于你拥有的数据,如果你的数据本质上是关系,那么SQL可能会更好,如果你的数据是基于文档的(没有定义的模式)那么noSQL可能会更好。 我们在产品中使用这两种类型的数据库,我们有很多不同的数据,有些适合SQL,有些适用于noSQL。 你在考虑什么样的规模? 并行访问,处理大量查询或非常大的数据处理? 你的问题非常广泛,如果不知道你要解决什么问题就很难回答。 It really depend ...
  • 虽然那个特定代码根本不是“可扩展”*,但有很多东西可以改进它: sha1取一个字符串。 因此,在计算哈希值之前,必须首先对非字符串$ input变量进行序列化或json_encoded。 只需更改顺序即可防止意外输入。 使用crc32而不是sha1,它更快( 非加密用途的最快哈希? ) 目录'cache /'是相对于当前目录的,因此当页面工作目录发生变化时,缓存目录也会发生变化。 人为地存在大量缓存未命中。 每次在cachedCalculateThing()中存储文件时,都要将文件名保存在/ dev / s ...
  • 不要忘记缓存。 使用memcached来减轻数据库的负载是构建高性能站点的关键。 正如alex所说,django-core不支持您对这些功能的特定请求,尽管它们肯定在todo列表中。 如果您不在应用程序层中执行此操作,则基本上是在寻求性能问题。 对于这类任务,没有任何真正好的开源自动化层,因为它往往会破坏SQL公理。 如果你真的很担心它,你应该为它编写整个应用程序的代码,而不是简单地希望你的ORM会处理它。 Don't forget about caching either. Using memcached ...
  • 有些人通过codeplex浏览4个小时,下载每个项目并分析代码,这给了我需要的答案。 我希望有一天这会帮助某人(虽然我同意@Mitch,如果SQL Server Audit适合你,你应该先尝试一下).. 添加对Microsoft.SqlServer.RegSrvrEnum.dll和SqlWorkBench.Interfaces的引用(位于C:\ ProgramFiles .. \ SQL Server .. - 中的某处)。 确保已安装工具的SDK。 我只测试了SQL Server Management S ...
  • 没有做测试真的很难说。 200个用户我认为你的意思是200个人同时坐在他们的计算机上做东西,而不是200个用户每天登录两次。 S2允许每秒49次交易听起来不对,但你需要测试。 也做了很多缓存也不会受到伤害。 It is really hard to tell without doing a test. By 200 users I assume you mean 200 people sitting at their computer at the same time doing stuff, not 20 ...
  • 首先简单地设计模型,为其构建单元测试,然后在其上设置表示层。 只要您的模型合理,就可以轻松扩展播放到任意数量的机器。 如果您在JPA支持中进行构建,则可以始终处理要使用哪个DB的问题。 你的盘子上暂时有更大的东西。 因此,只需确保您的设计一致且合理,然后缩放不会成为问题。 Start out by simply designing you model, build unit tests for that and then set your presentation layer on top of it. A ...
  • 根据您的描述,似乎某种键值存储对您比较关系数据库会更好。 数据本身似乎是非关系型的,为什么存储在关系存储中? 使用像Cassandra这样的东西似乎是有效的。 我认为要存储的数据的典型数据结构将是列族,Key为Row-key,Columns为value。 MyDATA: (ColumnFamily) RowKey=>Key Column1=>val1 Column2=>val2 ... ... ColumnN=valN 数据看起来像(JSON表示法): MyDA ...
  • 当我想到“大规模应用程序”时,我想到了三个截然不同的东西: 跨越大型横向扩展群集(远远大于1024个内核)的应用程序。 将处理比物理内存大得多的数据集的应用程序。 具有非常大的代码源基础的应用程序。 每种“可扩展性”引入了一种不同类型的复杂性,并且需要一套不同的折衷方案。 横向扩展应用程序通常依赖于使用MPI协调各种进程的库。 某些应用程序是“令人尴尬的并行”,并且为了完成任务(例如渲染动画电影的不同帧),需要在不同进程之间进行很少(甚至没有)通信。 这种应用程序往往是基于CPU时钟速率或内存带宽的性能限制 ...