程序开发中什么是有效索引和可接受索引?

程序开发中什么是有效索引和可接受索引?,第1张

索引就是检索数据时候的快速依据,能帮助程序快速运行。

API 中的函数若需要传入栈索引,这个索引必须是 有效索引 或是 可接受索引。

有效索引 指引用栈内真实位置的索引; 即在 1 到栈顶之间的位置 (1 ≤ abs(index) ≤ top)。 通常,一个可能修改该位置的值的函数需要传入有效索引。

除非另有说明, 任何可以接受有效索引的函数同时也接受 伪索引。 伪索引指代一些可以被 C code 访问得到 Lua 值,而它们又不在栈内。 这用于访问注册表以及 C 函数的上值。

对于那些只是需要栈中的值(例如查询函数) 而不需要指定一个栈位置的函数, 可以用一个可接受的索引去调用它们。 可接受索引 不仅可以是任何包括伪索引在内的有效索引, 还可以是任何超过栈顶但落在为栈分配出来的空间内的正索引。 (注意 0 永远都不是一个可接受索引。) 除非另有说明,API 里的函数都接受可接受索引。

允许可接受索引是为了避免对栈顶以外的查询时做额外的检查。 例如,C 函数可以直接查询传给它的第三个参数, 而不用先检查是不是有第三个参数, 即不需要检查 3 是不是一个有效索引。

对于那些以可接受索引调用的函数, 无效索引被看作包含了一个虚拟类型 LUA_TNONE 的值, 这个值的行为和 nil 一致。

有效索引 指引用栈内真实位置的索引; 即在 1 到栈顶之间的位置 (1 ≤ abs(index) ≤ top)。 通常,一个可能修改该位置的值的函数需要传入有效索引。

有效索引 指引用栈内真实位置的索引; 即在 1 到栈顶之间的位置 (1 ≤ abs(index) ≤ top)。 通常,一个可能修改该位置的值的函数需要传入有效索引。

索引是:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书。在数据库中,数据库程序使用索引可以重啊到表中的数据,而不必扫描整个表。书中的目录是一个字词以及各字词所在的页码列表,数据库中的索引是表中的值以及各值存储位置的列表。

索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法。

索引的利弊:查询执行的大部分开销是I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读取表的每一个数据页,如果有索引指向数据值,则查询只需要读少数次的磁盘就行啦。所以合理的使用索引能加速数据的查询。但是索引并不总是提高系统的性能,带索引的表需要在数据库中占用更多的存储空间,同样用来增删数据的命令运行时间以及维护索引所需的处理时间会更长。所以要合理使用索引,及时更新去除次优索引。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12006905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存