首页 > 前端 > 经验 > 数据库本身会选哪个索引,数据库表的索引有几种啊

数据库本身会选哪个索引,数据库表的索引有几种啊

来源:整理 时间:2024-03-28 00:51:13 编辑:黑码技术 手机版

本文目录一览

1,数据库表的索引有几种啊

自动编号这一种
1.普通索引、主键索引、唯一索引2.并非所有的数据库都以相同的方式使用索引,作为通用规则,只有当经常查询列中的数据时才需要在表上创建索引。

数据库表的索引有几种啊

2,mysqlcount会选哪个索引

1.任何情况下SELECT COUNT(*) FROM xxx 是最优选择;2.尽量减少SELECT COUNT(*) FROM xxx WHERE COL = xxx 这种查询;3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL = xxx 的出现。(其中COL非主键)
$sql ="select count(*) as c from forum_user"; $result=mysql_query($sql); $count =mysql_result($result,0,"c"); 输出$count 就可以了

mysqlcount会选哪个索引

3,Oracle数据库中如何选择合适的索引类型

凭借字典的目录,我们可以非常迅速的找到我们所需要的条目。数据库也是如此。凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表。   虽然说,在表中是否创建索引,不会影响到Oracle数据库的使用,也不会影响数据库语句的使用。这就好像即使字典没有目录的话,用户仍然可以使用它一样。可是,若字典没有目录,那么可想而知,用户要查某个条目的话,其不得不翻遍整本字典。数据库也是如此。若没有建立相关索引的话,则数据库在查询记录的时候,不得不去查询整个表。当表中的记录比较多的时候,其查询效率就会很低。所以,合适的索引,是提高数据库运行效率的一个很好的工具。   不过,并不是说表上的索引越多越好。过之而不及。故在数据库设计过程中,还是需要为表选择一些合适的索引。宁缺勿滥,这是建立索引时的一个遵循标准。在理论上,虽然一个表可以设置无限的索引。但是,数据库管理员需要知道,表中的索引越多,维护索引所需要的开销也就越大。每当数据表中记录有增加、删除、更新变化的时候,数据库系统都需要对所有索引进行更新。故数据库表中的索引绝对不是多多益善。具体来说,在索引建立上,笔者对大家有如下建议。   建议一:在基数小的字段上要善于使用位图索引。   基数是位图索引中的一个基本的定义,它是指数据库表中某个字段内容中不重复的数值。如在员工信息表中的性别字段,一般就只有男跟女两个值,所以,其基数为2;婚姻状况字段的话,则其只有已婚、未婚、离婚三种状态,其基数就为3;民族一览内也是只有有限的几个值。   对于要查询基数小的字段,如现在用户想查找所有婚姻状况为“已婚”的“女性”时,利用位图索引可以提高查询的效率。这主要是因为标准索引是通过在索引中保存排序过的索引列以及对应的ROWID来实现的。若我们在基数小的列上建立标准索引的话,则其会返回大量的记录。   而当我们在创建位图索引的时候,在Oracle会对整个表进行扫描,并且会为索引列的每个取值建立一个位图。若内容相同,则在位图上会以一个相同的数字表示。此时,若这个字段的基数比较小的话,则若需要实现对整个字段的查询的话,效率就会非常的高。因为此时,数据库只要位图中数字相同的内容找出来即可。   除了在数据表某列基数比较小的情况下,采用位图索引外,我们往往在一些特殊的情况下,也会建议采用位图索引。最常见的情况是,在Where限制条件中,若我们多次采用AND或者OR条件时,也建议采用位图索引。因为当一个查询饮用了一些部署了位图索引的列的时候,这些位图可以很方便的与AND或者Or 运算符操作结合以快速的找出用户所需要的记录。   但是,这里要注意,不是在条件语句中包含运算符的时候,采用位图索引都能够提供比较高的效率。一般来说,只有AND 或者OR运算符的时候,位图索引才会比较具有优势。若此时用户采用大于号或者不等于号作为条件语句中的限制条件的时候,则往往采用标准索引具有更大的优势。   所以,笔者在数据库设置中,一般只有在三种情况下才采用位图索引。一是列的基数比较小,而有可能需要根据这些字段的内容查找相关的记录;二是在条件语句中,用到了AND或者OR运算符的时候。除了这两种情况外,最好能够采用其他适合的索引。第三种情况是,需要用到NULL作为查询的限制条件。因为标准查询一般情况下,会忽略所有的NULL值列。也就是说,若需要查询“所有没有身份证号码”的员工的信息的时候,标准索引并不能够起到加速查询速度的作用。此时,就需要采用位图索引。因为位图索引会记录相关的NULL值列信息。   建议二:创建索引的一些限制条件。   并不说,表或者列建立的索引越多越好。相反,索引建的越多,有时会反而会影响数据库运行的整体性能。所以,在建立索引的时候,仍然会有一些限制条件。   一是不要对一些记录内容比较少的表建立索引。在一个应用系统设计的时候,如设计一个ERP系统的数据库,其虽然有几千张表。但是,并不是每张表都有大量记录的。相反,其中有近一半左右的数据表,可能其存储的数据不会超过百条。如员工登陆帐户密码表、企业部门信息表等等。对于这些记录内容比较少的表,我们建立最好不要为其建立索引。无论是表上的,还是字段上,都不要建立索引。   二是若表中的内容比较大,但是,这个表基本上不怎么查询的时候,则只需要在表上建立索引即可;而不需要在字段上建立索引。如现在在ERP系统中,有一张表是“AD_Table”。其存储的是这个数据库中相关表的信息。这张表只有在数据库设计的时候才会用到。故这张表中的记录虽然比较多,但是由于用户用的比较少,所以,一般没有必要为这张表建立列级别上的索引。而直接用表索引来代替。   三是在一些NULL字段上,要根据实际情况来判断是否要建立索引。如现在有一张人事档案的表格,其上面有两个字段,分别为“身份证号码”与“地区”。有时会为了某个原因,企业需要所有员工都在系统中登记他们的身份证号码,以方便他们办工资卡、社会保险等等。所以人事管理可能需要经常的查询系统,看看有没有没有身份证号码的员工信息。此时,就需要利用条件“IS NULL”来查询我们所需要的记录。故为了提高查询效率,若某个记录可能为空,并且经常需要以NULL为条件进行查询的时候,则最好给这个字段添加一个索引,并且最好建立位图索引。相反,若虽然可能会以NULL这个条件作为查询的限制语句,但是,用的不是很多的时候,则就没有必要为其建立索引。   建议三:多表连接查询的索引设计。   如现在有一个人事管理系统。人事经理想知道员工的社保缴纳情况。他需要知道员工的姓名、职务、户籍性质(农民户口跟居民户口费用不一样)、缴纳的情况等等。但是,这些信息包含在不同的表中。因为为了提高数据库的性能,在表中存储的可能只是某些序号,而不是具体的内容。如在社保表中,存储的是员工对应的编号,而不是员工的名字。所以,要得到这份报表的话,就可能需要关联员工基本信息表、公司组织结构表等表格,才能够查询到用户所需要的内容。   为此,就需要利用Join语句,把这些表格关联起来。为了提高数据库的查询效率,这些用来关联的字段,最好能够建立索引。这可以显著的提高查询的速度。   建议四:在表的更新速度与查询速度之间寻求一个平衡点。   众所周知,索引本身并不影响数据库的使用,其主要是为了提高数据库的查询效率。但是,由于当数据库的表中的数据更新的时候,包括记录的增加、删除、更改等等,都会对虽有的索引进行更新。   很明显,索引虽然可以提高查询速度。但是,也会对一些表的更新操作产生不良的影响。当在表中建立的索引越多,这个不利影响也会越大。故数据库管理员在设置索引的时候,还需要注意,在这两个之间需要一个均衡点。   按照一般的理论来说,当某个表多数用来查询、更新相对来说比较上的话,则要多多采用索引。相反,当某个表记录更新居主导,查询相对来说比较少的话,则不要建立太多的索引,避免对更新的速度差生不利影响。

Oracle数据库中如何选择合适的索引类型

文章TAG:数据数据库本身哪个数据库本身会选哪个索引

最近更新

  • 下载百度插件下载百度插件

    什么是百度插件?为什么我百度browser插件1/7没有点开-下载手机百度至尊版、百度浏览器如何安装插件啊?如何卸载这些插件?插件是遵循一定的标准应用程序接口编写的程序!百度插件也不例外!一.....

    经验 日期:2024-04-23

  • 微博的桌面程序,c# linux 桌面程序微博的桌面程序,c# linux 桌面程序

    如何登录自己的新浪微博方法1:微博桌面登录1。装上新浪微博桌面软件,点开,新浪微博如何登录工具/原材料电脑新浪微博微薄软件桌面登录新浪微博具体登录方式如下:1.安装新浪微博后,微博桌.....

    经验 日期:2024-04-23

  • ps有哪些插件,ps哪些插件适配m1芯片ps有哪些插件,ps哪些插件适配m1芯片

    PS插件,有什么优点?ps插件的路径怎么了?淘宝美工ps插件和Nikps-0哪个更好用。地铁站海报的应用优势1,可以提高宣传效率:地铁站海报可以更快捷有效的宣传活动信息,提高宣传效率,2、可以提高宣.....

    经验 日期:2024-04-23

  • qq主题助手插件,企业微信助手插件qq主题助手插件,企业微信助手插件

    QQ主题美化助手是一款一键更新安卓手机QQ主题的工具。没有root怎么下载手机qq美化助手解决方案:QQ,手机root已通过并授予QQ主题美化助手root权限!「QQ主题美化助手」v装QQ主题美化助手v.....

    经验 日期:2024-04-23

  • vst插件安装教程,utrack vst驱动安装教程vst插件安装教程,utrack vst驱动安装教程

    什么是vst插件?如何在waves7vst3-0中安装海选CS6中笛子的-1插件wavesV7是否包含vst3不清楚。您需要在安装过程中选择vst3选项,Cubasevst乐器插件如何加载?插件经理扫描后可以看到插件Type.....

    经验 日期:2024-04-23

  • 谷歌浏览器 海康插件下载谷歌浏览器 海康插件下载

    如何下载Chrome-3浏览器在百度谷歌浏览器Enter谷歌官网上搜索,并点击。谷歌浏览器(谷歌Chrome谷歌浏览器由于墙壁原因无法访问官方应用商店,导致Chrome浏览器Installation。1、chrome检.....

    经验 日期:2024-04-23

  • 10.1.1修复cydia插件,cydia联网修复插件10.1.1修复cydia插件,cydia联网修复插件

    下载1.1.1的cydia依赖包和deb插件ofcydiaof,用pp助手放到cydia安装目录下,重启两次。-2.再次用1.6.0的cydia覆盖,可以输入这个时间,但是安装插件并提示无法执行immediateconfigurationonun.....

    经验 日期:2024-04-23

  • eclipse smali 插件eclipse smali 插件

    dexdump方法dexdump是仿真器提供的查看dex文件的工具。可以用这样的命令把dex文件转储成txt文件:d:programfilesandroidsdkWindows1.6_R1platformsAndroid1.6tools>dexdump.exedclasse.....

    经验 日期:2024-04-23