gpt4 book ai didi

mysql - 在 CakePHP 1.2 中显示 Oracle 分页查询

转载 作者:行者123 更新时间:2023-11-29 06:17:56 27 4
gpt4 key购买 nike

在 CakePHP 中使用分页时,查询是如何工作的?是吗:

a) 查询整个记录集,只显示分页设置指定的记录?

b) 根据分页设置仅查询记录的子集?

如果不使用选项“b”,我想避免对数百万条记录进行查询。我已经在网上搜索了几个小时,但找不到任何东西。

如果是选项“a”,您是否知道任何可将分页转换为选项“b”的自定义设置?我正在与 Oracle 合作,所以标准

SELECT * FROM `table`
LIMIT 60 , 30

在 Oracle 中的工作方式与在 MySQL 中的工作方式不同。但我可以根据需要轻松地将 MySQL 示例转换为 Oracle。

更新:它似乎正确地限制了数据,但我无法看到查询来确定它是正确的。当我回显 dbo_source.php 中的结果时,它仅返回分页限制定义的记录数。奇怪的是它不会显示用于对记录分页的实际查询。这可能是他们在查询之前传递的预言机设置吗?

最佳答案

有多种方法可以查看实际执行的查询。

第一种方法是从 mysql 本身打开 mysql 日志记录。只要您是唯一使用该服务器的人,它就足够了。

第二种方法是编辑 cake 安装中的 dbo_* 文件并添加几行以将查询记录到文件中。这可以通过打开 dbo_mysql.php 文件来完成。它位于:

cake/libs/model/datasources/dbo/dbo_mysql.php

找到 _execute($sql) 函数。您要做的就是添加一行或三行 php 代码以将 $sql 输出到 requests.log 文件。

然后要查看正在运行的实时查询,请打开终端并运行 tail -f requests.log (使用 Mac 或 Linux)。

这是查看运行的查询的好方法,也是优化代码的好方法。另外,如果您好奇,只需浏览 dbo_* 文件,看看 oracle 与 mysql 相比如何执行,等等。

关于mysql - 在 CakePHP 1.2 中显示 Oracle 分页查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com