Oracle和PostgreSQL在使用NULL和索引方面有什么区别?
分类:编程技术
时间:2024-02-20 15:50
浏览:0
评论:0
本文主要讲解《Oracle和PostgreSQL中NULL和索引的使用有什么区别》。文章中的解释简单明了,易于学习和理解。请跟随小编的思路慢慢深入,一起研究学习《Oracle和PostgreSQL中NULL和索引使用有什么区别?》
Oracle在创建索引时不会存储NULL值,而PostgreSQL在创建索引时会存储NULL值。查询时,如果使用Column is null等条件查询,Oracle将不会使用索引。 PostgreSQL会使用索引。
Oracle
插入数据,200万行数据,然后插入一行空值数据。
执行查询
TEST-orcl@DESKTOP-V430TU3>在explainTEST-orcl@DESKTOP-V430TU3上设置自动跟踪>select * from tbl1 where id is null; ID----------执行计划------------------------------------ - - - - - - - - - - - 计划哈希值:312383637-------------------------------------------------------- ------------------------------------------------|身份证 |操作 ----------------------------------------| 0 |选择语句 | | 1 1 | 1 5 | 898(2)| 00:00:11 ||* 1 |表访问已满| TBL1 | 1 | 5 | 898(2)| 00:00:11 |------------------------------------ -------------------- ------------------------------谓词信息(通过操作id标识):------------ ---------------------------------- --------- 1 - 过滤器("ID" IS NULL)TEST-orcl@DESKTOP-V430TU3>
PostgreSQL
数据表tbl1结构与Oracle一致。
testdb=# insert into tbl1 selectgenerate_series(1,100000);INSERT 0 100000testdb=#explain (analyze,verbose) select * from tbl1 where id is null; -------------------------------------------------- --------对public.tbl1进行顺序扫描(成本=0.00..1569.33行=11宽度=4)(实际时间=26.052..130.752行=1循环=1)输出:id 过滤器: (tbl1.id IS NULL) 过滤器删除的行数: 110000 计划时间: 1.403 毫秒 执行时间: 130.814 毫秒(6 行)testdb=# 在 tbl1(id) 上创建索引 idx_tb1_id;CREATE INDEXtestdb=# 解释 (analyze,详细) select * from tbl1 where id is null;自从 - - - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------- 仅使用 idx_tb1_id 对 public.tbl1 进行索引扫描(成本=0.42..8.56 行) =4宽度=4)(实际时间=0.133..0.136行=1循环=1)输出:id索引条件:(tbl1.id IS NULL)堆获取:1计划时间:1.512毫秒执行时间:0.199毫秒(6 rows)
使用 id is null 进行查询,并使用 Index Only Scan。
感谢您的阅读。以上就是《Oracle和PostgreSQL中NULL和索引的使用有什么区别》的内容。看完文章相信大家对于“N的使用有什么区别”这个问题有了一定的了解Oracle和PostgreSQL中的ULL和索引》更深刻的理解和具体使用需要通过实践来验证。这里,小编将为大家推送更多相关知识点的文章,欢迎关注!
1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Oracle和PostgreSQL在使用NULL和索引方面有什么区别?
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Oracle和PostgreSQL在使用NULL和索引方面有什么区别?