English 中文(简体)
RedBean ORM的业绩[封闭]
原标题:RedBean ORM performance [closed]
Closed. This question needs to be more focused. It is not currently accepting answers.

我愿知道,是否可以将红ean用于诸如社会网络网 app等注重业绩的情景,即使有数千个数据同时被多个用户所取,也保持稳定。 我也想知道,红十字是否消耗了更多的记忆空间。

是否有任何人对理论-反种族主义进行比较研究?

最佳回答

@tereško 如果能满足要求,请根据您的经验,就纯l子问题提供方言和方言,并同时探讨这一议题。 - https://stackoverflow.com/users/375510/jaison-justus>Jaison Justus

很难用600个特点来解释这一点。

我必须澄清一点:这指的是在PHP上的ORMs,尽管我很相信这也适用于一些Ruby ORM,也可能适用于另一些人。

简言之,你应避免,但如果你 ][> 如果使用口服体液处理法,那么你会更好掌握2.x分辨率,从而减轻邪恶。 (Implements some similar to DataMapper,而不是“积极的记录”。)

Case against ORMs

某些开发商喜欢使用口服体液酸液的主要原因是:it在ORM中容易做简单的事,其履约费用非常低。 这完全是罚款。

1。

问题的根源在于人们掌握着同样的工具。 www.un.org/spanish/ga/president 这导致创设了一个 rel=“nofollow noreferer” 技术性债务

At first it is easy to write new DB related code. And maybe, because you have a large project, management in first weeks (because later it would case additional issues - read The Mythical Man-Month, if interested in details) decides to hire more people. And you end up preferring people with ORM skills over general SQL.

但是,随着项目的进展,你将开始利用管理办公室来解决日益复杂的问题。 你们将开始抵制某些限制,最后,你们可能最终会遇到一些问题,即使你们知道,也不可能解决这些问题。 而现在,由于你没有雇用这些专家,你没有专家。

Additionally most of popular ORMs are implementing ActiveRecord, which means that your application s business logic is directly coupled to ORM. And adding new features will take more and more time because of that coupling. And for the same reason, it is extremely hard to write good unit-tests for them.

<>2> 业绩

I already mentioned that even simple uses of ORM (working with single table, no JOIN) have some performance costs. It is due to the fact that they use wildcard * for selecting data. When you need just the list of article IDs and titles, there is no point on fetching the content.

当你需要基于多种条件的数据时,办公室管理层与多个表格的工作确实是坏的。 考虑问题:

数据库有4个表格: Projects,presentations,Slides/code>和Bulletpoints

  • Projects have many Presentations
  • Presentations have many Slides
  • Slides have many Bulletpoitns

And you need to find content from all the Bulletpoints in the Slides tagged as "important" from 4 latest Presentations related to the Projects with ids 2, 4 and 8.

This is a simple JOIN to write in pure SQL, but in any ORM implementation, that i have seen, this will result in 3-level nested loop, with queries at every level.


P.S.还有其他原因和副作用,但现在不能忘记任何其他重要问题。

问题回答

I feel Tereško s answer is not quite right.

首先,它不涉及原始问题。 这的确是对监察员的一个案例,我同意他回答中描述的问题。 因此,我写了《加勒比PHP》。 仅仅因为大多数口服体液涂炭器无法使你的生活更加容易,也不意味着物体关系测绘系统的概念存在缺陷。 多数办公室管理人员试图躲藏Kall,这就是为什么JOIN公司变得如此复杂;他们需要在面向目标的环境中重新发明类似的东西。 这里的情况是,RedBeanPHP不同,因为它并不藏匿。 它创建了易于查询的有效表格。 RedBeanPHP不使用伪造的电梯语言,而是使用旧的便衣和海滩检索。 简言之,RedBeanPHP与Kall公司合作,而不是对抗。 这使情况不那么复杂。

And yes, the performance of RedBeanPHP is good. How can I be so sure? Because unlike other ORMs, RedBeanPHP distinguishes between development mode and production mode. During the development cycle the database is fluid; you can add entries and they will be added dynamically. RedBeanPHP creates the columns, indexes, guesses the data types etc. It even stretches up columns if you need more bytes (higher data type) after a while. This makes RedBeanPHP extremely slow, but only during development time when speed should not be an issue. Once you are done developing you use freeze the database with a single mode specifier R::freeze() and no more checks are done. What you are left with is a pretty straight forward database layer on your production server. And because not much is done, performance is good.

是的,我知道,我是加勒比PHP的作者,因此我有偏见。 然而,我感到,我对我的人力资源管理厅的看法与促使我写这封信的其他人一样。 如果你想要了解更多情况,就可自由查阅,这里是:

在我们的公司中,我们利用红灯光灯光系统和金融商业系统,因此似乎规模不大。

我和红巴群岛社区正真诚地努力使世界成为更美好的地方;你可以阅读访问声明here

祝你项目顺利,我希望你找到你所期待的技术解决办法。

我与这里的“@tereško”不同,因为管理事务办公室能够使数据库查询更加方便,便于书写和保存。 我认为,一些伟大的工作是利用他们! 网上还进行了一些业绩比较,并查看了NotORM(如果我记得正确的话,没有使用,而是与Doctrine进行了一些比较)。

If, 您到此为止,您的投稿要求您在那个时候做 raw择。 但是,在减少你的 b和提高生产力方面,我认为,你的节约将为更好的服务器提供资金。 当然,你的里程可能有所不同。

我不知道红海,偶然,但我稍微认为,在大多数情况下,抗议比理论更快,因为这些课程是事先设立的。 当时,我使用了“反悔”这一唯一选择,并 st了它,尽管我肯定会反对使用“理论”。

2018 update

抗议2在几年后仍停留在甲型,需要一些令人痛心的项目,但不幸的是,这些项目还没有完成。 虽然维护者说,这一甲型六氯环己烷在生产中使用是好的,因为它有很好的检测覆盖面,但现在开始在普罗维登上3号。 不幸的是,在我撰写本报告时,尽管存放处已经老了一年,但实际上还没有释放。

我认为,“反悔”是一个伟大的项目,但我很想知道,现在是否最好使用其他东西。 这还可能从灰 the中起!

我将谈谈利用两个世界的组合和配对的“课程”。 我很少利用红海开发大型应用,因此我的评论将完全侧重于红海,而不是其他远洋管理。

IS RedBean ORM SLOW?

Well, it depends on how you use it. In certain scenarios, it s faster than traditional query because RedBean cache the result for few seconds. Reusing the query will produce result faster. Have a look at the log using R::debug(true); It always shows

"SELECT * FROM `table` -- keep-cache"

Scenario 1: Fetching All (*)

如果有人问询,请问询

$result = R::findOne( table ,   id = ? , array($id));

This is represented as

$result= mysql_query("Select * from TABLE where id =".$id);

You may argue that if the table is having multiple columns why should you query (*).

<><>>> 设想2:单列

一栏

R::getCol(  SELECT first_name FROM accounts  );

如同“课程指南”所述,开发商不应仅仅依靠<代码>Find One, FindAll, FindFirst, Find Last,而应认真起草他们真正需要的内容。

<><>>> 设想3:Caching

如果你不需要打剪,你就可以在申请级别上脱节,而这种水平就是一种理想的状况。

R:$ author->setUseCache(true);

RedBean建议,如果你不想在申请级别上拆分,那么你就应当使用传统的盘问方法,如<代码>$result = R:exec(“SlectTQ_NO_CACHE* from TABLE”);。

这完全解决了从桌上取用实时数据的问题,完全抛弃了电梯。

<><>>> 设想4:快速发展

利用OMRM使你的应用发展真正快,开发商可以比写作快2-3x的代码。

<><>>> 设想5:复杂的Quries & 关系

RedBean为执行复杂的查询和one-to-manymany-to-many 关系提供了一个真正独特的途径。

$books = R::getAll(  SELECT 
    book.title AS title, 
    author.name AS author, 
    GROUP_CONCAT(category.name) AS categories FROM book
    JOIN author ON author.id = book.author_id
    LEFT JOIN book_category ON book_category.book_id = book.id
    LEFT JOIN category ON book_category.category_id = category.id 
    GROUP BY book.id
      );
    foreach( $books as $book ) {
        echo $book[ title ];
        echo $book[ author ];
        echo $book[ categories ];
    }

OR RedBean 处理许多t-to-many关系的方式

list($vase, $lamp) = R::dispense( product , 2);

$tag = R::dispense(  tag  );
$tag->name =  Art Deco ;

//creates product_tag table!
$vase->sharedTagList[] = $tag;
$lamp->sharedTagList[] = $tag;
R::storeAll( [$vase, $lamp] );

Performance Issues

审计和调查处等论点通常很缓慢,消耗了更多的记忆,往往使申请进展缓慢。 我认为,他们不谈红海。

我们用MySQL和Pogres进行了测试,相信我的业绩绝不是瓶颈。

没有人否认,管理事务办公室几乎没有增加间接费用,而且往往使你的申请更慢(仅略微少一点)。 采用办公室管理办法主要是开发商时间与稍微慢的经营时间业绩之间的权衡。 我的战略是首先在测试案例的基础上,与人力资源管理厅一道建立最终应用程序,从而打破使用直截了当的数据检索速度的关键单元。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签