首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql常用建立索引规则

建立索引规则 建立索引常用规则如下: 表主键、外键必须有索引; 数据量超过300表应该有索引; 经常与其他表进行连接表,连接字段应该建立索引; 经常出现在Where子句中字段,非凡是大表字段...,应该建立索引索引应该建在选择性高字段(枚举型字段不建索引); 索引应该建在小字段,对于大文本字段甚至超长字段,不要建索引复合索引建立需要进行仔细分析;尽量考虑用单字段索引代替: 正确选择复合索引主列字段...单字段查询是否极少甚至没有?...假如是,则可以建立复合索引;否则考虑单字段索引; 假如复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引; 假如复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 假如既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; ​ 以上是一些普遍建立索引判定依据

2.9K10

Mysql优化-索引

索引应该建在小字段,对于大文本字段甚至超长字段,不要建索引复合索引建立需要进行仔细分析;尽量考虑用单字段索引代替: 复合索引主列字段,要是使用较高选择性字段复合索引几个字段是否经常同时以...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 较高选择性:就是通过字段就可以筛选出满足条件尽可能少数据...复合索引生效规则 如果一个条件不能单独提供较高选择性,复合索引将会非常有用。 较高选择性:就是通过字段作为条件就可以筛选出满足条件尽可能少数据。...复合索引索引第一位column很重要,只要查询语句包含复合索引一个条件,基本就会使用复合索引(可能会使用其他索引)。我们在建符合索引时候应该按照column重要性从左往右建。

1.3K50
您找到你想要的搜索结果了吗?
是的
没有找到

MongoDB各种类型索引

---- _id索引 我们在上文介绍过,我们往集合添加文档时,默认情况下MongoDB都会帮助我们创建一个名为_id字段,这个字段就是一个索引。...复合索引 如果我们查询条件有多个的话,我们可以对这多个查询条件都建立索引,比如我们可以对文档x和y字段都建立索引,如下: db.sang_collect.ensureIndex({x:1,y:-1...如果查询包含Java又包含C#文档,操作如下: db.sang_collect.find({$text:{$search:"\"Java C#\""}}) 用一对双引号将查询条件括起来,如果查询包含...PHP或者Python文档,操作如下: db.sang_collect.find({$text:{$search:"PHP Python"}}) 如果查询既有PHP,又有Python,但是又不包括Java...2d sphere索引 2dsphere适用于球面类型地图,它数据类型是GeoJSON格式,我们可以http://geojson.org/地址查看GeoJSON格式样式,比如我们描述一个点,

1.3K70

SQL索引优化

如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引包含字段超过3个,那么仔细考虑其必要性...,考虑减少复合字段; E、如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 8、频繁进行数据操作表,不要建立太多索引; 9、删除无用索引,避免对执行计划造成负面影响;...' ,'yyyymm') 查询计划表明,上面的查询对表进行全表扫描,如果我们知道表最早数据为2001年1月1日,那么,可以增加一个最小时间,使查询一个完整范围之内。...如果查询表完全没有顺序,那么一个要返回记录数小于10%查询可能会读取表中大部分数据块,这样使用索引会使查询效率提高很多。...但是如果表非常有顺序,那么如果查询记录数大于40%时,可能使用全表扫描更快。因此,有一个索引范围扫描总体原则是: 1)对于原始排序表 仅读取少于表记录数40%查询应该使用索引范围扫描。

1.1K80

Mysql性能优化一:SQL语句性能优化

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引;  如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引;  如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...;  如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引;  频繁进行数据操作表,不要建立太多索引;  删除无用索引,避免对执行计划造成负面影响;  表建立每个索引都会增加存储开销...GROUP BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询

1.9K20

52 条 SQL 语句性能优化策略,建议收藏!

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销,...GROUP BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询

90600

实用排坑帖:SQL语句性能优化操作策略大全

避免对大表查询时进行table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销...BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列。...基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加在服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据测试所有可疑查询

82621

52 条 SQL 语句性能优化策略

; 避免对大表查询时进行table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性...,考虑减少复合字段如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响...BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列。...基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加在服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据测试所有可疑查询

62160

爆肝!52 条SQL语句性能优化策略

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销,...GROUP BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...,而不是多个连接,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据

53430

52条SQL语句性能优化

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销,...GROUP BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询

78210

SQL优化

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销,...GROUP BY和ORDER BY子句中使用索引列,保持索引简单,不在多个索引包含一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...重新启动MySQL,记得来温暖你数据库,以确保您数据在内存和查询速度快,考虑持久连接,而不是多个连接,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器

68120

后端程序员必备:SQL高性能优化方案!50条优化,建议马上收藏!

; 避免对大表查询时进行 table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引;  如果复合索引包含字段经常单独出现在 WHERE 子句中,则分解为多个单字段索引;  如果复合索引包含字段超过 3 个,那么仔细考虑其必要性,考虑减少复合字段...;  如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引;  频繁进行数据操作表,不要建立太多索引;  删除无用索引,避免对执行计划造成负面影响;  表建立每个索引都会增加存储开销...、GROUP BY 和 ORDER BY 子句中使用索引列,保持索引简单,不在多个索引包含一个列。...基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加在服务器使用 SHOW PROCESSLIST 查看慢和有问题查询开发环境中产生镜像数据测试所有可疑查询

99501

只知道20种,其实远不止...

;避免对大表查询时进行 table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在 WHERE 子句中,则分解为多个单字段索引如果复合索引包含字段超过 3 个,那么仔细考虑其必要性,考虑减少复合字段...;如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引;频繁进行数据操作表,不要建立太多索引;删除无用索引,避免对执行计划造成负面影响;表建立每个索引都会增加存储开销,索引对于插入...、GROUP BY 和 ORDER BY 子句中使用索引列,保持索引简单,不在多个索引包含一个列。...基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加在服务器使用 SHOW PROCESSLIST 查看慢和有问题查询开发环境中产生镜像数据测试所有可疑查询

47350

84-对网传一些看法

如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用; 要注意索引维护,周期性重建索引,重新编译存储过程。  ...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在 WHERE 子句中,则分解为多个单字段索引如果复合索引包含字段超过 3 个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; tiger: 一般是删除单字段索引,保留复合索引 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响...、GROUP BY 和 ORDER BY 子句中使用索引列,保持索引简单,不在多个索引包含一个列。...基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加在服务器使用 SHOW PROCESSLIST 查看慢和有问题查询开发环境中产生镜像数据测试所有可疑查询

51420

SQL优化意义是什么?你用过哪些优化方式

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询...11.使用索引字段作为条件时,如果索引复合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用,并且应尽可能字段顺序与索引顺序相一致。

1.3K20

DataGrip激活码,亲测有效。DataGrip2021.2

避免对大表查询时进行table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销...避免对大表查询时进行table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段

28.2K20

mysql数据库优化大全

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询...11.使用索引字段作为条件时,如果索引复合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用,并且应尽可能字段顺序与索引顺序相一致。

1.1K20

MySQL性能优化总结

table scan,必要时考虑新建索引使用索引字段作为条件时,如果索引是联合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用;要注意索引维护,周期性重建索引...如果是,则可以建立复合索引;否则考虑单字段索引如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; 如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 频繁进行数据操作表,不要建立太多索引; 删除无用索引,避免对执行计划造成负面影响; 表建立每个索引都会增加存储开销...,以减少开销,基准查询,包括使用服务器负载,有时一个简单查询可以影响其他查询,当负载增加您服务器使用SHOW PROCESSLIST查看慢和有问题查询开发环境中产生镜像数据 测试所有可疑查询...11.使用索引字段作为条件时,如果索引复合索引那么必须使用索引一个字段作为条件时才能保证系统使用索引,否则索引将不会被使用,并且应尽可能字段顺序与索引顺序相一致。

62210

面向面试编程连载(一)

,否则对表更新效率有很大影响,因为操作表时候要化大量时间花在创建索引 3、复合索引会替代单一索引如果索引满足窄索引情况下可以建立复合索引,这样可以节约空间和时间 3.为哪个表哪个字段需要添加索引有什么依据吗...、索引应该建在选择性高字段; 6、索引应该建在小字段,对于大文本字段甚至超长字段,不要建索引; 7、复合索引建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引主列字段,...如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引包含字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...; E、如果既有字段索引又有这几个字段复合索引,一般可以删除复合索引; 8、频繁进行数据操作表,不要建立太多索引; 9、删除无用索引,避免对执行计划造成负面影响; 以上是一些普遍建立索引判断依据...profiler是一个非常方便查询诊断分析工具,通过工具可以获取一条查询整个执行过程多种资源消耗情况,例如内存消耗、I/O消耗和CPU消耗 profile语法结构: show profile

81750
领券