![]() |
1
2
有一些方法可以减少查询量。
|
![]() |
2
4
仅仅因为您使用的是ORM,并不意味着您不应该进行性能调优。
我有——像你一样——我的一个应用程序的主页性能很差。我看到我正在做数百个查询来显示那个页面。我看了看我的代码,意识到在使用
您还可以运行一个SQL事件探查器,看看是否有索引可以帮助您最常见的查询——您知道,标准的数据库资料。 我想缓存也是你的朋友。如果很多页面没有改变,您是否需要每次查询数据库? 如果其他的都失败了,记住:ORM是伟大的,是的-你应该尝试使用它,因为它是姜戈哲学; 但你还没有结婚 . 如果您真的有一个研究和调优ORM导航没有帮助的用例,如果您确信可以用一个标准查询做得更好:对该用例使用原始SQL。 |
![]() |
3
3
每个查询的开销只是图片的一部分。Django和MySQL服务器之间的实际往返时间可能非常短,因为大多数查询在不到一毫秒的时间内返回。更大的问题是,向数据库发出的查询数量可能会很快压倒它。一个页面的500个查询是很重要的,即使50个对我来说也很重要。如果10个用户查看复杂的页面,那么现在最多可以查询5000个。 当调用者从广域网访问数据库时,到数据库服务器的往返时间更是一个因素,在广域网中往返时间很容易在20毫秒到100毫秒之间。 我肯定会考虑使用某种缓存。 |
![]() |
4
1
在数据库调用中总是有开销,在您的情况下,开销不是 那个 坏的,因为应用程序和数据库在同一台计算机上,所以没有网络延迟,但仍然有很大的成本。 当您向数据库发出请求时,它必须准备通过执行一些操作来服务该请求,包括:
这只是大多数数据库管理系统处理SQL请求所做的事情的概述。即使查询本身运行得比较快,也会产生500倍的开销。即使是到本地数据库的底层数据库交互也不像您期望的那样便宜。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |