索引创建规则: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是, 则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 8、频繁进行数据操作的表,不要建立太多的索引; 9、删除无用的索引,避免对执行计划造成负面影响; 以上是一些普遍的建立索引时的判断依据。 一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。 因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销, 索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下, 一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
- 浏览: 55073 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (87)
- 开发工具 (10)
- linux (11)
- linux nginx (3)
- 搭建 (1)
- java (14)
- mybatis (7)
- mysql c3p0 (1)
- mysql (12)
- json jackjson (1)
- java aop (1)
- linux mysql (1)
- nginx tomcat mem (2)
- linux 内存 (2)
- windows rtx (1)
- jira (1)
- tomcat (2)
- 分词 (1)
- spring MVC (2)
- spring MVC log4j (1)
- linux yum (0)
- mem (0)
- zookeeper (2)
- dubbo (3)
- mybtis eclipse (1)
- schema (0)
- redis (0)
- redis spring (1)
- redis 集群 (0)
- ruby (1)
- spring redis (0)
- jenkins scp (1)
- activemq spring (0)
- ServiceLoader (0)
- spring (0)
- spring ioc (0)
- thread (5)
- thred (0)
- jdk (2)
- js 日期使用 (1)
- maven (0)
- windows (0)
最新评论
发表评论
-
Windows server 2008 r2下MySQL5.7.17 winx64安装版配置方法图文教程
2020-06-23 15:44 0win下安装mysql5.7,供大家参考,具体内容如下 @ ... -
数据库的设置
2019-05-24 15:37 0一、多大算合适 : 说实话我也不是很清楚,但是查阅了N多中 ... -
Mysql 查询缓存 query_cache
2019-05-17 18:07 0第一: query_cache_type 使用查询缓存的方式一 ... -
mysql记录慢日志
2019-01-17 18:08 356在mysql5.6以上版本中,直接在my.cnf文件 ... -
mysql分组后获取若干数据
2018-12-28 11:57 384最近做一个链表分组 ... -
mysql连表查询优化
2018-09-19 11:02 778mysql在做连表查询时,有时候用不到索引,这个时候就可以用 ... -
数据库隔离级别
2018-06-19 14:05 0最近在做一个优惠券系统,由于很多系统都要使用到优惠券,就每个系 ... -
mysql多表查询
2018-05-31 13:39 359在做连表查询的时候,可以在联合的字段上面,分别加上索引字段, ... -
mysql 随机order by
2017-12-19 09:12 416特殊业务场景下,需要对数据库的数据,进行随机查询出来,mys ... -
mysql 查找配置文件
2017-11-15 10:13 1116由于服务器的mysql是上一个同事安装的,导入数据的时候,发 ... -
mysql记录所有执行过的sql语句
2016-08-31 15:14 650[mysqld] port = 33 ... -
mysql 添加[取消]timestamp的自动更新
2016-02-02 17:34 1918创建自动更新的 timestamp (插入或修改时 upti ... -
mysql导入数据服务器超时其他错误
2015-12-17 15:08 981t同事今天导入数据,用工具导出了sql的包,导入时,老是报 ... -
mysql登录关闭权限
2015-06-05 10:35 469今天忘记mysql的用户密码了,登录到服务器 fin ... -
linux二进制安装mysql
2015-05-12 16:38 01 安装gcc 直接yum安装的 yum -y ins ... -
mysql 存储过程小记
2014-10-20 16:11 325以前公司使用的是o数据库,最近在折腾mysql,有个小需求, ...
相关推荐
MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...
同时,过度使用索引也可能带来负面影响,如写操作性能下降、额外的存储空间消耗,因此合理创建和维护索引至关重要。 总的来说,理解 MySQL 索引的数据结构有助于我们更好地设计数据库,编写高效的 SQL 查询,从而...
以下将详细介绍MySQL中的索引使用规则及其相关知识。 1. **创建索引** - **CREATE INDEX** 语句用于在表的列上创建索引,例如:`CREATE INDEX idx_name ON table_name (column_name);` - **唯一性索引**:`UNIQUE...
1. 避免 MySQL 给我们建立索引 Rowid,不用我们的表字段建立索引。 2. 避免 B+ 树的结构频繁变化,页结点分裂,表自动平衡。 3. 查询遵循必须按照索引顺序的规则:从最左边开始例如(bill,30) (bill 30 dev)可以...
多列索引则是在两个或更多列上建立的索引,它适用于多个查询条件的情况。然而,多列索引的使用有其特定规则,被称为“最左前缀原则”。这意味着查询条件必须从索引的第一列开始,并按照索引列的顺序匹配,直到遇到...
总的来说,理解MySQL索引的类型、创建方法以及如何选择合适的索引是优化数据库性能的关键。正确的索引设计能够显著提升查询效率,减少不必要的计算资源消耗,从而提高整体系统性能。在实际应用中,还应定期分析查询...
MySQL 索引机制详细解析 MySQL 索引机制是 MySQL 中的一种数据结构,它可以加快数据的检索速度。索引机制是指在数据库中的...但是,索引机制也需要遵循一定的设计原则和维护规则,以确保索引的有效性和查询的高效率。
MySQL 索引是数据库性能优化的关键因素,它通过预排序数据来加快查询速度。索引分为聚集索引和非聚集索引。 聚集索引(Clustered Index)是数据库表中数据实际存储的方式,决定了数据在磁盘上的物理顺序。由于数据...
- **修改索引**: MySQL不直接支持修改索引,需先删除再重建。 - **查询索引** - **基础命令**: `EXPLAIN SELECT * FROM table_name WHERE condition;` - **参数解释**: - **id**: 指示查询的执行顺序。 - **...
根据查询特点,考虑建立合适的索引,如考虑建立基于主键、特定查询条件或者排序规则的索引,来优化查询性能。 ### 总结 本文通过介绍MySQL索引背后的数据结构和算法原理,深入分析了B-Tree和B+Tree的特点及对MySQL...
针对使用MySQL的索引,我们之前介绍过索引的最左前缀规则,索引覆盖,唯一索引和普通索引的使用以及优化器选择索引等概念,今天我们讨论下如何更合理的给字符串创建索引。 如何更好的创建字符串索引 我们知道,...
这个原则指出,当创建一个包含多个列的联合索引时(例如,KEY test_col1_col2_col3 ON test(col1, col2, col3)),MySQL会在查询时从索引的最左侧列开始匹配,依次向右。这意味着,如果查询条件包含了索引的最左侧列...
总结来说,字段约束、索引、视图和外键是MySQL数据库设计和优化的重要组成部分。通过理解和合理使用这些特性,可以有效地提高数据库管理的效率和数据操作的性能。在实际应用中,应当根据具体的数据模型和业务需求...
手册会讲解如何创建和管理索引,包括唯一索引、主键、全文索引和空间索引等。 5. **查询优化**:学习如何编写高效的SQL查询,包括使用JOIN操作合并多个表的数据,利用子查询解决问题,以及如何避免全表扫描以提升...
索引是数据库中用于提高数据检索效率的重要技术。合理使用索引能够大幅提升数据库查询的速度。...记住这些规则,编写符合规则的SQL语句,就能最大化地利用我们建立好的联合索引来提高数据库查询的效率。
根据提供的文件信息,文件名为《MySQL的命名规则.pdf》,描述也是相同的,而标签为“技术及资料”。尽管提供的部分内容看似混乱,其中显然包含了与MySQL命名规则相关的关键词和代码片段。文件的核心内容很可能是关于...
│ 第二十课MySQL索引和调优.pdf │ 第二课MySQL入门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-...
MySQL全文索引是一种高效搜索大量文本数据的方法,它允许用户以自然语言的形式进行查询,而不仅仅是基于精确匹配。全文索引在数据库管理中扮演着重要角色,尤其在处理新闻、文章、博客等含有大量文本信息的数据时。...