我在我的数据库中制作一个在线游戏和一个表.也许是最重要的一个.它开始变得非常大.我正在创建一个函数,您可以与多个用户一起使用,为此我有一个到目前为止看起来像这样的表:
CREATE TABLE `oc` (
`id` int(11) NOT NULL auto_increment,
`leader` varchar(40) NOT NULL default '',
`car` int(11) NOT NULL default '0',
`car_type` char(2) NOT NULL default '',
`seats` varchar(3) NOT NULL default '0',
`share` enum('1','2') NOT NULL default '1',
`location` varchar(100) NOT NULL default '',
`user1` varchar(40) NOT NULL default '',
`user2` varchar(40) NOT NULL default '',
`user3` varchar(40) NOT NULL default '',
`user4` varchar(40) NOT NULL default '',
`user5` varchar(40) NOT NULL default '',
`user6` varchar(40) NOT NULL …Run Code Online (Sandbox Code Playgroud) 对于以下域:
\nclass Parent {\n @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")\n Set <Child> children;\n)\n\nclass Child {\n @ManyToOne\n Parent parent;\n ... // setters, getters, other properties \n}\nRun Code Online (Sandbox Code Playgroud)\n我正在寻找一种添加子实体的方法,而无需在父对象中延迟初始化子实体。
\n前任:
\nchild.set(parent) // is fine, since Parent is pretty lightweight.\n\nparent.getChildren().add(child) // No good, since in this case it will attempt to \n//load all the children of a Parent object.\nRun Code Online (Sandbox Code Playgroud)\n乍一看,这感觉应该是很容易实现的事情,因为为了添加子项,您所需要的只是父项 ID 和对子表的 SQL 插入语句。\n但是,当涉及到休眠时,没有什么是简单的(事实上,对于所有使用缓存的东西来说,\xe2\x80\x99 都是如此):-)
\n我们正在尝试扩展一个遗留应用程序,该应用程序最初是为支持数十个孩子而编写的,但随着时间的推移,现在已经发展到可以与数千个孩子一起运行,并且正如您可以想象的那样,\xe2\x80\x99t 无法很好地扩展,因为每次我们需要要添加子项,我们需要首先将整个组加载到内存中,这会导致 O(N) 时间复杂度和 O(N) 空间复杂度(其中 N 是子项总数)。
\n有人遇到过类似的问题吗?有没有办法在 hibernate 中解决这个问题,或者 hibernate …
所以我已经使用 Django 好几个月了*。我发现自己处于这样一个位置,我能够为任何目的编写 Django 网络应用程序,但我害怕我无法**提出如何为大型(大)观众。很高兴知道Django至少可以扩展。
似乎需要相对较大的知识飞跃才能理解如何(更不用说实际执行)扩展 Django Web 应用程序。我这么说是因为我的研究给我的印象是,扩展(或启用可扩展性)是一个将售后市场解决方案适配到您的 Web 应用程序的不同组件以提高每个组件的性能的过程。
所以有大量的解决方案和一堆组件。例如,有弹性魔豆的主持,Django的缓存框架,Memcached的和光油的缓存,卡桑德拉,Redis的和PostgreSQL的对数据库和uWSGI,Nginx的和Apache的进行部署。如果我认为是对的,无论如何。我还不确定。
我渴望那个惊人的回应成为问题的规范答案,但也很感激从哪里开始的线索,或者解决问题的方法的建议,或者你扩展 Django 的方法。提前感谢您的智慧之言。<<编辑:所以不赞成 :(
我应该做/实施的 3 件最重要/最有效的事情是什么,以提高我正在构建的 Django Web 应用程序的扩展能力?列出方法,并解释它们如何提供帮助会很好。
*我一直在作弊。我部署在 Pythonanywhere 上,到目前为止只使用过 Sqlite3。迄今为止,我还设法使我的手保持清洁 WSGI/Apache 部署的东西。
**使用 Django 是我第一次设法通过编程创造一些有价值的东西。之前,我只使用 Pascal 在 Runescape …
开发大型项目(社交网络)是否合理,在ASP.NET MVC中每天处理数百万次访问.我想在那种情况下,网站的性能将非常缓慢.我需要一些建议.在性能和可扩展性方面,构建社交网络的最佳选择是什么?可以在ASP MVC中构建它还是不错的选择?例如,使用Ruby on Rails可能会更好吗?你觉得怎么样?提前致谢!)
scalability ×5
api ×1
asp.net-mvc ×1
caching ×1
database ×1
django ×1
hibernate ×1
java ×1
large-scale ×1
load ×1
mysql ×1
one-to-many ×1
php ×1
python ×1
scaling ×1