Jquery 按不带索引的一列或两列进行搜索其中一列有索引
根据你的经验,我想知道哪种情况更快 查询记录数超过1000万条的表有两种情况:Jquery 按不带索引的一列或两列进行搜索其中一列有索引,jquery,mysql,sql,database,search,Jquery,Mysql,Sql,Database,Search,根据你的经验,我想知道哪种情况更快 查询记录数超过1000万条的表有两种情况: search1在单个product\u id列上 search2分为两列shop\u name(已编制索引)和product\u id 所以会是这样 search1 = select * from table where product_id = 123456 search 2 = select * from table where shopname ='abz' and product_id = 123
在单个search1
列上product\u id
分为两列search2
(已编制索引)和shop\u name
product\u id
search1 = select * from table where product_id = 123456
search 2 = select * from table where shopname ='abz' and product_id = 123456
第二次搜索具有shopname索引
哪一个更快
如果我了解索引是如何工作的,那么第二个索引会更快
因为它将只搜索具有shopname='abz'的ID,而忽略其他记录
这是正确的还是我遗漏了一些东西对于您的两个查询,最佳索引是
表(product\u id,shopname)
。此索引可由和子句使用
如果只有shopname
上的索引,那么在大多数情况下,第二个查询应该会更快。也就是说,product\u id
不在索引中,也不是主键的一部分
如果您的店名很少,并且该表无法放入内存中,那么您可能会遇到一种称为“打乱”的情况。但是,除此之外,仅shopname
上的索引应该更快,但上面提到的索引似乎是您真正想要的索引。根据我的经验,这是我在RDBS SELECT SQL中实际看到的:
当我从没有提到索引列值的表中选择数据时,通常需要花费大量时间来完成运行,有时可能会导致性能问题
然而,当我包括一个索引列,说客户号码和完整的范围,它神奇地工作出更快
因此,我的答案是使用SQL.2,因为它更快
SQL.1)SQL引擎不知道从哪里开始,所以它会进行表空间扫描
SQL.2)SQL引擎有一些东西可以启动,它可以进行索引扫描,这在实用性上更快
然而,并非所有情况下都是如此,这取决于数据的设计方式。。。可能有这样一种情况,SQL.1的运行速度更快,因为表空间扫描在第一页本身就有记录,而索引扫描必须到达商店,然后才能获得产品。无论如何,为了获得一个整体高效的解决方案,最好使用SQL
希望有帮助:)始终避免查询未编制索引的列表。因此,索引product\u id
too@juergen据我所知,索引过多会降低插入和删除的速度。那么,你是否建议将其中两个索引?由于我每天在此表中插入的数据太多,或者其中一列id足够多,这会影响插入吗?在我的情况下,shopname将被多次复制,从100次复制到无限次,因为每个商店都可以有许多产品,但对于product_id,它对所有商店都是唯一的。您建议使用多列索引表吗(product_id,shopname)如您所述?@JoumanaIssa…是的,如果这些是您想要运行的查询,您应该使用多列索引。