精华内容
下载资源
问答
  • 索引创建原则

    2018-09-06 14:13:00
    每个索引都会占用一定的物理空间。若索引多了,不但会占用大量的物理空间,而且,也会影响到整个数据库的运行性能。 当表中有外键或者主键的时候,就最好为其建立索引。 对于这些需要在指定范围内快速或者频繁查询...

    每个索引都会占用一
    定的物理空间。若索引多了,
    不但会占用大量的物理空间,而且,也会影响到整个数据库
    的运行性能。


    当表中有外键或者主键的时候,就最好为其建立索引。


    对于这些需要在指定范围内快速或者频繁查询的数据列,需要为其建立索引。因为索引已经排序,
    其保存的时候指定的范围是连续的,查询可以利用索引的排序,

     

    对于查询中很少涉及的列或者重复值比较多的列,
    不要建立索引


    对于一些特殊的数据类型,不要建立索引如: TXT IMAGE

    转载于:https://www.cnblogs.com/hepeng/p/9598063.html

    展开全文
  • 索引 创建原则

    2018-09-15 17:15:00
    搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在 WHERE子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。 使用惟一索引。考虑某列中值的分布。索引的列的...

      搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在 WHERE
    子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。
      使用惟一索引。考虑某列中值的分布。索引的列的基数越大,索引的效果越好。例
    如,存放出生日期的列具有不同值,很容易区分各行。而用来记录性别的列,只含有“ M”
    “F”,则对此列进行索引没有多大用处,因为不管搜索哪个值,都会得出大约一半的行。
       使用短索引。如果对字符串列进行索引,应该指定一个前缀长度,只要有可能就应
    该这样做。例如,如果有一个 CHAR(200)列,如果在前 10 个或 20 个字符内,多数值是惟一
    的,那么就不要对整个列进行索引。对前 10 个或 20 个字符进行索引能够节省大量索引空间,
    也可能会使查询更快。较小的索引涉及的磁盘 IO 较少,较短的值比较起来更快。更为重要
    的是,对于较短的键值,索引高速缓存中的块能容纳更多的键值,因此,MySQL 也可以在
    内存中容纳更多的值。这样就增加了找到行而不用读取索引中较多块的可能性。
      利用最左前缀。在创建一个 n 列的索引时,实际是创建了 MySQL 可利用的 n 个索引。
    多列索引可起几个索引的作用,因为可利用索引中最左边的列集来匹配行。这样的列集称为
    最左前缀。
      不要过度索引。不要以为索引“越多越好”,什么东西都用索引是错误的。每个额
    外的索引都要占用额外的磁盘空间,并降低写操作的性能。在修改表的内容时,索引必须进
    行更新,有时可能需要重构,因此,索引越多,所花的时间越长。如果有一个索引很少利用
    或从不使用,那么会不必要地减缓表的修改速度。此外,MySQL 在生成一个执行计划时,
    要考虑各个索引,这也要花费时间。创建多余的索引给查询优化带来了更多的工作。索引太
    多,也可能会使 MySQL 选择不到所要使用的最好索引。只保持所需的索引有利于查询优化。
       对于 InnoDB 存储引擎的表,记录默认会按照一定的顺序保存,如果有明确定义的主
    键,则按照主键顺序保存。如果没有主键,但是有唯一索引,那么就是按照唯一索引的顺序
    保存。如果既没有主键又没有唯一索引,那么表中会自动生成一个内部列,按照这个列的顺
    序保存。按照主键或者内部列进行的访问是最快的,所以 InnoDB 表尽量自己指定主键,当
    表中同时有几个列都是唯一的,都可以作为主键的时候,要选择最常作为访问条件的列作为
    主键,提高查询的效率。另外,还需要注意,InnoDB 表的普通索引都会保存主键的键值,
    所以主键要尽可能选择较短的数据类型,可以有效地减少索引的磁盘占用,提高索引的缓存
    效果。

    转载于:https://www.cnblogs.com/tiankc/p/9651492.html

    展开全文
  • Mysql索引创建原则在mysql中使用索引的原则有以下几点:1、 对于查询频率高的字段创建索引;2、 对排序、分组、联合查询频率高的字段创建索引;3、 索引的数目不宜太多原因:a、每创建一个索引都会占用相应的物理...

    Mysql索引创建原则

    在mysql中使用索引的原则有以下几点:

    1、 对于查询频率高的字段创建索引;

    2、 对排序、分组、联合查询频率高的字段创建索引;

    3、 索引的数目不宜太多

    原因:a、每创建一个索引都会占用相应的物理控件;

    b、过多的索引会导致insert、update、delete语句的执行效率降低;

    4、若在实际中,需要将多个列设置索引时,可以采用多列索引

    如:某个表(假设表名为Student),存在多个字段(StudentNo, StudentName, Sex, Address, Phone, BirthDate),其中需要对StudentNo,StudentName字段进行查询,对Sex字段进行分组,对BirthDate字段进行排序,此时可以创建多列索引

    index index_name (StudentNo, StudentName, Sex, BirthDate);      #index_name为索引名

    在上面的语句中只创建了一个索引,但是对4个字段都赋予了索引的功能。

    创建多列索引,需要遵循BTree类型,

    即第一列使用时,才启用索引。

    在上面的创建语句中,只有mysql语句在使用到StudentNo字段时,索引才会被启用。

    如:     select * from Student where StudentNo = 1000;      #使用到了StudentNo字段,索引被启用。

    可以使用explain检测索引是否被启用

    如:explain select * from Student where StudentNo = 1000;

    5、选择唯一性索引

    唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。

    6、尽量使用数据量少的索引

    如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

    7、尽量使用前缀来索引

    如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。

    8、删除不再使用或者很少使用的索引.

    表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响

    本文禁止转载或摘编

    --

    --

    --

    分享到:

    投诉或建议

    评论

    展开全文
  • mysql的索引创建原则

    2020-03-16 23:18:24
    索引创建原则: 1.最左匹配原则: 比如a=1 and b=2, and c>3 and d=4, a b c d字段都创建了索引,但此时只用到了 a b索引;如果改成a=1 and b=2 and d=4 and c>3,将d和c对调下,此时用到了a b d索引 2.=和...

    索引创建原则:

    1.最左匹配原则:

    • 比如a=1 and b=2, and c>3 and d=4, a b c d字段都创建了索引,但此时只用到了 a b索引;如果改成a=1 and b=2 and d=4 and c>3,将d和c对调下,此时用到了a b d索引

    2.=和in位置无关

    3.常出现在where或on后的字段

    4.order by 或group后的字段,添加索引加快分组和排序

    5.某字段中相同数据较少适合添加字段

    6.联合索引,联合索引比单个索引快

    7.唯一值字段

    8.字段中的值较短的适合添加索引

    9.删除无用索引,索引创建过多也会影响查询速度

     

     

    展开全文
  • DB2索引创建原则

    2014-12-19 13:27:48
    这是很多人都提到的问题,下面就为您详细介绍DB2索引创建原则,供您参考学习。 DB2索引实现是一个B+树,通过索引可以实现快速查询,避免全表扫描以此来减少IO操作。 索引是对表数据的一种抽象,通过抽取有限...
  • 是什么索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。如果表有了索引的话,那么 MySQL 可以很快的确定数据的位置,而...
  • Mysql索引创建原则

    2020-04-09 09:11:02
    在mysql中使用索引原则有以下几点: 1、 对于查询频率高的字段创建索引; 2、 对排序、分组、联合查询频率高的字段创建索引; 3、 索引的数目不宜太多 原因:a、每创建一个索引都会占用相应的物理控件;  b、...
  • SQL索引创建原则、创建与删除示例

    千次阅读 2017-06-03 09:44:21
    一、索引创建原则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该...
  • mysql索引创建原则

    2020-04-28 17:29:08
    为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引创建什么类型的索引。本小节将向读者介绍一些索引的设计原则。 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来...
  • 正文是什么索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。如果表有了索引的话,那么 MySQL 可以很快的确定数据的位置...
  • 数据库索引创建原则

    2018-04-11 21:22:17
    当然也要注意一些细节:1、比如复合索引前缀原则,当我们创建A、B、C三个复合索引时,当我们使用AB或者A或者ABC时,索引会被用到,但是使用BC、AC或B或C时就用不到索引。2、like查询%问题:%在前,like查询字段的...
  • 是什么  索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。... 大多数的 MySQL 的索引(主键索引,唯一...
  • SQL Server索引创建原则

    2019-05-23 18:38:29
    索引会影响 INSERT、UPDATE、DELETE 和 MERGE 语句的性能,因为进行修改时索引会发生变化,建立索引时应该避免大量更新列的的操作,而选择时将查询列作为索引列,或者是两个表的关联字段和查询条件字段作为索引列。...
  • 是什么索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。如果表有了索引的话,那么 MySQL 可以很快的确定数据的位置,而...
  • 索引的设计可以遵循一些已有的原则创建索引的时候请尽量考虑符合这些原则,便于提升索引的使用效率,更高 效的使用索引。 1.对查询频次较高,且数据量比较大的表建立索引。 2.索引字段的选择,最佳候选列应当...
  • 是什么索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。如果表有了索引的话,那么 MySQL 可以很快的确定数据的位置,而...
  • 创建索引时,执行MySQL查询时,会从第一个记录开始扫描整个表的所有记录,直到查找到符合要求的记录,表中的记录越多,查询的代价就越大。 但是作为搜索条件的列上已经创建索引,MySQL查询时不再扫描任何记录便...
  • Oracle索引创建原则

    2008-05-12 13:17:05
    转自:http://noco.blog.hexun.com/3240983_d.html以前做的Oracle资料,整理的创建索引的几条原则: 需要平衡query合DML的需要,常用于(子)查询的表应建立索引; 把索引建到不同的...
  • MySQL从零开始 22-索引创建原则

    千次阅读 2018-07-25 18:13:01
     是否要为表增加索引索引建立在那些字段上,是创建索引前必须要考虑的问题。解决此问题的一个比较好的方法,就是分析应用程序的业务处理、数据使用,为经常被用作查询条件、或者被要求排序的字段建...
  • 正文是什么索引用于快速的查询某些特殊列的某些行。如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行。表越大,查询的成本越大。如果表有了索引的话,那么 MySQL 可以很快的确定数据的位置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,032
精华内容 812
关键字:

索引创建原则