Questions tagged «indexing»

索引数据结构是提高数据查找速度的通用技术。

4
PostgreSQL为什么对索引列执行顺序扫描?
非常简单的示例-一个表,一个索引,一个查询: CREATE TABLE book ( id bigserial NOT NULL, "year" integer, -- other columns... ); CREATE INDEX book_year_idx ON book (year) EXPLAIN SELECT * FROM book b WHERE b.year > 2009 给我: Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622) Filter: (year > 2009) 为什么不执行索引扫描呢?我想念什么?

9
外键是否可以提高查询性能?
假设我有2个表格,产品和产品类别。两个表在CategoryId上都有关系。这就是查询。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 当我创建执行计划时,表ProductCategories会执行群集索引查找,这与预期的一样。但是对于表Products,它执行集群索引扫描,这使我感到怀疑。为什么FK不能帮助提高查询性能? 因此,我必须在Products.CategoryId上创建索引。当我再次创建执行计划时,两个表都执行索引查找。并且估计的子树成本大大降低了。 我的问题是: 除了FK有助于关系约束之外,它还有其他用途吗?它会提高查询性能吗? 是否应该在所有表的所有FK列(如Products.CategoryId)上创建索引?

3
PostgreSQL可以索引数组列吗?
我在文档中找不到这个问题的明确答案。如果列是数组类型,是否将对所有输入的值分别进行索引? 我创建了一个只有一int[]列的简单表,并在其上添加了唯一索引。我注意到我无法添加相同的int数组,这使我相信索引是数组项的组合,而不是每个项的索引。 INSERT INTO "Test"."Test" VALUES ('{10, 15, 20}'); INSERT INTO "Test"."Test" VALUES ('{10, 20, 30}'); SELECT * FROM "Test"."Test" WHERE 20 = ANY ("Column1"); 索引对这个查询有帮助吗?

2
KEY关键字是什么意思?
在此MySQL表定义中: CREATE TABLE groups ( ug_main_grp_id smallint NOT NULL default '0', ug_uid smallint default NULL, ug_grp_id smallint default NULL, KEY (ug_main_grp_id) ); 什么是KEY关键字是什么意思?它不是主键,也不是外键,所以它仅仅是索引吗?如果是这样,用这种方法创建的这种索引有何特别之处KEY?
141 mysql  indexing 

10
如何在MySQL中删除唯一性?
Create Table: CREATE TABLE `fuinfo` ( `fid` int(10) unsigned NOT NULL, `name` varchar(40) NOT NULL, `email` varchar(128) NOT NULL, UNIQUE KEY `email` (`email`), UNIQUE KEY `fid` (`fid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 我想将唯一键放在上email,如何?
139 mysql  indexing  sql-drop 


2
在mysql中索引datetime字段是一个好主意吗?
我正在设计一个大型数据库。在我的应用程序中,我将有很多行,例如,我目前有一个包含400万条记录的表。我的大多数查询都使用datetime子句来选择数据。索引mysql数据库中的datetime字段是一个好主意吗? Select field1, field2,.....,field15 from table where field 20 between now() and now + 30 days 我正在努力保持数据库正常运行,并且查询运行平稳 此外,您认为创建高效数据库应该有什么主意?
137 mysql  indexing 

9
什么时候应该使用复合索引?
什么时候应该在数据库中使用复合索引? 使用复合索引对性能有何影响? 为什么要使用复合索引? 例如,我有一张homes桌子: CREATE TABLE IF NOT EXISTS `homes` ( `home_id` int(10) unsigned NOT NULL auto_increment, `sqft` smallint(5) unsigned NOT NULL, `year_built` smallint(5) unsigned NOT NULL, `geolat` decimal(10,6) default NULL, `geolng` decimal(10,6) default NULL, PRIMARY KEY (`home_id`), KEY `geolat` (`geolat`), KEY `geolng` (`geolng`), ) ENGINE=InnoDB ; 对geolat和都使用复合索引对我来说是否有意义geolng: 我取代: KEY …

3
SQLite中的主键是否需要索引?
当将整数列标记为SQLite表中的主键时,是否也应为其显式创建索引?SQLite似乎没有自动为主键列创建索引,但是给定目的,它还是可以为它建立索引吗?(我将一直在该列上进行搜索)。 字符串主键的情况会有所不同吗?



7
我需要在Oracle的外键上创建索引吗?
我有一张桌子A和一张桌子B。 A在Bon B的主键上有一个外键B_ID。 由于某种原因(我知道有正当的理由),当我在键上连接这两个表时,它没有使用索引。 我是否需要A.B_ID在外键上单独创建索引,或者是否应该提供外键?
120 sql  oracle  indexing 

8
从列表或元组中明确选择项目
我有以下Python列表(也可以是元组): myList = ['foo', 'bar', 'baz', 'quux'] 我可以说 >>> myList[0:3] ['foo', 'bar', 'baz'] >>> myList[::2] ['foo', 'baz'] >>> myList[1::2] ['bar', 'quux'] 如何显式挑选索引没有特定模式的项目?例如,我要选择[0,2,3]。或者,从1000个很大的清单中,我要选择[87, 342, 217, 998, 500]。是否有一些Python语法可以做到这一点?看起来像这样: >>> myBigList[87, 342, 217, 998, 500]
120 python  list  select  indexing  tuples 

5
Rails:在添加列后添加索引
假设我table在Rails应用程序中创建了一个表。一段时间后,我添加了一个正在运行的列: rails generate migration AddUser_idColumnToTable user_id:string. 然后我意识到我需要添加user_id为索引。我知道该add_index方法,但是应该在哪里调用该方法?我是否应该进行迁移(如果是,是哪个迁移?),然后手动添加此方法?

1
熊猫使用什么规则生成视图与副本?
我对Pandas决定从数据框中进行选择是原始数据框的副本或原始数据视图时使用的规则感到困惑。 例如,如果我有 df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) 我了解a会query传回副本,因此类似 foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 将对原始数据帧无效df。我也了解标量或命名切片返回一个视图,因此对它们的赋值(例如 df.iloc[3] = 70 要么 df.ix[1,'B':'E'] = 222 会改变df。但是当涉及到更复杂的案件时,我迷失了。例如, df[df.C <= df.B] = 7654321 变化df,但是 df[df.C <= df.B].ix[:,'B':'E'] 才不是。 是否有一个熊猫正在使用的简单规则,我只是想念它?在这些特定情况下发生了什么;尤其是,如何更改满足特定查询的数据框中的所有值(或值的子集)(就像我在上面的最后一个示例中尝试的那样)? 注意:这和这个问题不一样;并且我已经阅读了文档,但并未对此有所启发。我还阅读了有关此主题的“相关”问题,但我仍然缺少Pandas使用的简单规则,以及如何将其应用于(例如)修改值(或值的子集)在满足特定查询的数据框中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.