Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 按不带索引的一列或两列进行搜索其中一列有索引_Jquery_Mysql_Sql_Database_Search - Fatal编程技术网

Jquery 按不带索引的一列或两列进行搜索其中一列有索引

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

根据你的经验,我想知道哪种情况更快

查询记录数超过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 = 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…是的,如果这些是您想要运行的查询,您应该使用多列索引。