raid管理网站开发,什么网站可以做高仿,设计师入门必学软件,公司建网站制作平台创建一个表格 内涵一千万条数据 这张表中#xff0c;只有id有建立索引#xff0c;且其余都没有
测试1#xff1a;使用or的情况下#xff0c;根据主键进行查询 可以看到根据主键id进行or查询 花费了30-114毫秒#xff0c;后面30多毫秒可能是因为Mysql的Buffer Pool缓冲池的…创建一个表格 内涵一千万条数据 这张表中只有id有建立索引且其余都没有
测试1使用or的情况下根据主键进行查询 可以看到根据主键id进行or查询 花费了30-114毫秒后面30多毫秒可能是因为Mysql的Buffer Pool缓冲池的原因导致的 测试2使用in的情况下根据主键id进行查询 可以看到使用in的情况下查询效率在30-90ms之间 测试3使用or的情况下不走索引进行查询 可以看到在不使用索引的情况下使用or的查询速度为50秒左右 测试4使用in的情况下不走索引进行查询 in比or快了一秒左右但也很慢但也许是我测试数据有些问题 总结
当字段有添加索引时IN 和 OR 查询的速度没有太大区别。但是当字段没有添加索引时连接的字段越多例如 1 OR 2 OR 3 OR 4 …OR 查询的效率会明显低于 IN 查询 IN 查询 IN 查询用于检查某个字段是否在给定的值列表中。例如SELECT * FROM users WHERE user_id IN (1, 2, 3)。IN 查询的时间复杂度通常是 O(logn)。这是因为数据库引擎可以使用二分查找或类似的优化策略来快速定位给定值。 OR 查询 OR 查询用于连接多个条件例如 SELECT * FROM users WHERE age 25 OR age 30 OR age 35。OR 查询的时间复杂度通常是 O(n)。这是因为对于每个条件数据库引擎都需要逐一扫描数据集直到找到匹配的行。