繁体   English   中英

TYPO3 Extbase 查询总是超级慢

[英]TYPO3 Extbase queries always super slow

当提取 1000 多条记录时,无论多么简单,在 TYPO3 中使用 Extbase(在自定义扩展中),总是需要很长时间。 使用自定义 SELECT 语句(如 $query->statement("SELECT......) 虽然要快得多。

我已经使用 TYPO3(和 Extbase)多年了,我总是遇到这样的问题,即在处理大量(1000 多条)记录时,从任何表中提取和显示数据都会变得非常慢,因为记录的数量成长。 我总是最终使用 $query->statement("SELECT * from this or that table"),由于某种原因,这比使用 Extbase 的使用 $query->matching(..... ...);

有谁知道如何加快常规(内置)查询方法,使其与“自定义语句方法”速度相匹配?

从 6.x 版开始我就遇到过这个问题 - 我现在使用的是 9.x

Extbase 将获取关系(不是延迟加载的),并将执行一堆 object 映射、class 内省、SQL 表/映射和更多解析。 这就是为什么 Extbase 本质上会比您的查询慢的原因 - Extbase 只是做了很多,不仅仅是一个查询。

加速方法,其相关性取决于您未描述的用例:

  • 确保作为关系、表连接条件子句一部分的每个最后一个属性都存在索引和键。
  • 将您不使用/很少用于相关特定列表视图的属性标记为延迟加载,以避免在访问它们之前查询它们。
  • 如果以上还不够:
    • 创建一个扁平表,其中包含从多个表中提取的属性。
    • 创建一个扁平表作为 SQL 视图(并允许它缓存)
    • 创建一个非常有限的 model 以反映您列出的 object 并使用此 object (使用标准 ZA8CFDE6331BD49EB66AC96F8911 表)

这些中的每一个都将迭代地提高性能,最“物有所值”的建议来自最后一组建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM