相关疑难解决方法(0)

群集和非群集索引实际上意味着什么?

我对DB的了解有限,并且只使用DB作为应用程序员.我想知道ClusteredNon clustered indexes.我用谷歌搜索,发现的是:

聚簇索引是一种特殊类型的索引,它重新排序表中记录的物理存储方式.因此,表只能有一个聚簇索引.聚簇索引的叶节点包含数据页.非聚簇索引是一种特殊类型的索引,其中索引的逻辑顺序与磁盘上行的物理存储顺序不匹配.非聚簇索引的叶节点不包含数据页.相反,叶节点包含索引行.

我在SO中发现的是聚簇索引和非聚簇索引之间有什么区别?.

有人可以用简单的英语解释这个吗?

sql-server indexing performance clustered-index non-clustered-index

1041
推荐指数
10
解决办法
74万
查看次数

MySQL - 为什么不索引每个字段?

最近我学会了索引的奇迹,并且性能得到了显着提升.然而,凭借我所学到的一切,我似乎无法找到这个问题的答案.

索引很棒,但为什么有人只能将所有字段编入索引以使表格速度极快?我敢肯定有一个很好的理由不这样做,但三十字段表中的三个字段怎么样?30场比赛中10场比赛?人们应该在哪里画线,为什么?

mysql sql indexing

95
推荐指数
3
解决办法
3万
查看次数

哪些列通常会成为好的索引?

作为" 什么是索引以及如何使用它们来优化我的数据库中的查询? " 的后续内容,我试图了解索引,哪些列是好的索引候选者?专门针对MS SQL数据库?

经过一些谷歌搜索,我读过的所有内容都表明,通常增加和唯一的列会产生一个很好的索引(比如MySQL的auto_increment),我理解这一点,但我使用的是MS SQL,我使用GUID作为主键,所以看来索引不会使GUID列受益......

database sql-server indexing optimization database-design

90
推荐指数
5
解决办法
7万
查看次数

每个SQL Server外键都应该有匹配的索引吗?

为SQL Server数据库中的每个外键创建索引是一种好习惯吗?

sql t-sql sql-server

64
推荐指数
4
解决办法
4万
查看次数

如何索引数据库列

希望我能为每个数据库服务器获得答案.

有关索引工作方式的概述,请查看:数据库索引如何工作?

sql database indexing

61
推荐指数
2
解决办法
4万
查看次数

什么是数据库索引?

自从我18个月前开始从事科技工作以来,我听说过他们.我知道它们可能会提高性能,而且它们似乎是特定于列的 - ("我们在date_of_birth列上索引User表").

只是想快速了解它们究竟是什么,它们的用途以及它们的工作原理.

database indexing

51
推荐指数
5
解决办法
5万
查看次数

索引如何加速搜索?

索引如何帮助加速基于特定条件搜索数据?

如果有一个包含6列的表并且没有索引,则程序必须检查所有表行.

索引涉及创建另一个单独的表,其中只有两列,即要索引的id和列.

我不明白,这是如何帮助应用程序进行更快速的搜索?它不会读取整个6列表,但它仍然必须读取整个2列表,对吗?哪个行数相同......

database indexing search

18
推荐指数
2
解决办法
3453
查看次数

有人可以详细解释Magentos Indexing功能吗?

我有点了解Magento中的索引是如何工作的,但我还没有看到任何关于此的好文档.我想知道以下内容.

  • 这个怎么运作
  • 它的目的是什么?
  • 它为什么如此重要
  • 每个人都应该了解的细节是什么
  • 还有什么能帮助别人完全理解索引是什么以及如何在Magento中使用它

我认为拥有这些信息对我船上的其他人来说非常有用,而这些信息并没有完全得到索引过程.

更新:在我的问题评论和Ankur的回答之后,我想我错过了一些关于正常数据库索引的知识.那么这只是Magento处理索引的版本,对我来说,更好的方法是在数据库索引方面得到我的答案,例如这里的链接数据库索引如何工作?

php mysql database indexing magento

14
推荐指数
2
解决办法
1万
查看次数

我遇到了DB性能瓶颈,现在在哪里?

我现在有一些查询耗时太长(300毫秒),因为数据库已经增长到几百万条记录.幸运的是,对我来说,查询不需要查看大部分数据,最新的100,000条记录就足够了,所以我的计划是维护一个包含最新100,000条记录的单独表格并针对此运行查询.如果有人对更好的方法有任何建议,这将是伟大的.我真正的问题是,如果查询确实需要针对历史数据运行,有哪些选项,下一步是什么?我想到的事情:

  • 升级硬件
  • 使用内存数据库
  • 在您自己的数据结构中手动缓存对象

这些事情是否正确,还有其他选择吗?某些数据库提供程序是否具有比其他数据库提供程序更多的功能来处理这些问题,例如将特定的表/索引指定为完全在内存中?

对不起,我应该提到这个,我正在使用mysql.

我忘了在上面提到索引.到目前为止,索引是我唯一的改进来源.为了识别瓶颈,我一直在使用maatkit进行查询,以显示是否正在使用索引.

我知道我现在正在远离问题的目的,所以也许我应该再做一个.我的问题是EXPLAIN说查询需要10毫秒而不是300毫秒jprofiler报告.如果有人有任何建议我会非常感激.查询是:

select bv.* 
from BerthVisit bv 
inner join BerthVisitChainLinks on bv.berthVisitID = BerthVisitChainLinks.berthVisitID 
inner join BerthVisitChain on BerthVisitChainLinks.berthVisitChainID = BerthVisitChain.berthVisitChainID 
inner join BerthJourneyChains on BerthVisitChain.berthVisitChainID = BerthJourneyChains.berthVisitChainID 
inner join BerthJourney on BerthJourneyChains.berthJourneyID = BerthJourney.berthJourneyID 
inner join TDObjectBerthJourneyMap on BerthJourney.berthJourneyID = TDObjectBerthJourneyMap.berthJourneyID 
inner join TDObject on TDObjectBerthJourneyMap.tdObjectID = TDObject.tdObjectID 
where 
BerthJourney.journeyType='A' and 
bv.berthID=251860 and 
TDObject.headcode='2L32' and 
bv.depTime is null and 
bv.arrTime > '2011-07-28 16:00:00'
Run Code Online (Sandbox Code Playgroud)

而输出来自EXPLAIN:

+----+-------------+-------------------------+-------------+---------------------------------------------+-------------------------+---------+------------------------------------------------+------+-------------------------------------------------------+
| id | select_type …
Run Code Online (Sandbox Code Playgroud)

mysql database database-design caching database-performance

8
推荐指数
1
解决办法
1645
查看次数

MYSQL"解释查询"显示"键"NULL

我已经让mysql解释了以下查询:

SELECT carid,pic0,bio,url,site,applet 
FROM cronjob_reloaded 
WHERE 
carid LIKE '%bmw%' 
OR 
carid LIKE '%mer%' 
OR 
age BETWEEN '5' AND '10' 
OR 
category IN ('used') 
ORDER BY CASE 
    WHEN carid LIKE '%bmw%' OR carid LIKE '%mer%' THEN 1 
    WHEN age BETWEEN '5' AND '10' THEN 2 
    ELSE 3 
END 
Run Code Online (Sandbox Code Playgroud)

以下是解释结果:

EXPLAIN SELECT carid, pic0, bio, url, site, applet
FROM cronjob_reloaded
WHERE carid LIKE '%bmw%'
OR carid LIKE '%mer%'
OR carid IS NOT NULL
AND age
BETWEEN '5'
AND '10'
Run Code Online (Sandbox Code Playgroud)

我不明白这个:

在此输入图像描述

  1. 为什么键为NULL?

  2. 我可以更快地进行此查询吗?它需要0.0035秒 …

mysql

8
推荐指数
1
解决办法
1万
查看次数