有什么区别
Public Variable As Integer
Run Code Online (Sandbox Code Playgroud)
和
Private pVariable As Integer
Public Property Let Variable(ByVal lVariable As Integer)
pVariable = lVariable
End Property
Public Property Get Variable()
Variable = pVariable
End Property
Run Code Online (Sandbox Code Playgroud)
在VBA类模块中?
为什么我会使用第二个版本?
我有一个大约有 150 万行和三列的表。列“timestamp”为 REAL 类型并已建立索引。我正在通过 PHP PDO 访问 SQLite 数据库。
以下三个选择的运行时间不到一毫秒:
select timestamp from trades
select timestamp + 1 from trades
select max(timestamp) from trades
Run Code Online (Sandbox Code Playgroud)
下面的选择大约需要半秒:
select max(timestamp) + 1 from trades
Run Code Online (Sandbox Code Playgroud)
这是为什么?
编辑:Lasse 要求“解释查询计划”,我已在 PHP PDO 查询中运行它,因为我目前没有直接的 SQLite3 命令行工具访问权限。我想这并不重要,结果如下:
explain query plan select max(timestamp) + 1 from trades:
[selectid] => 0
[order] => 0
[from] => 0
[detail] => SCAN TABLE trades (~1000000 rows)
explain query plan select max(timestamp) from trades:
[selectid] => 0
[order] => 0
[from] => …Run Code Online (Sandbox Code Playgroud)