标签:INDEX name 数据库 更新 索引 ADD ALTER
数据库索引
索引是一种数据结构,是帮助数据库高效获取数据的数据结构 (在数据之外,数据库系统还满足着特定查找算法的数据结构,这些数据以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这些数据结构就叫索引)
索引的优势有哪些
- 数据库IO的次数: 提高数据索引的效率,降低数据库IO的成本
- 索引排序:通过索引列对数据可进行排序,降低排序成本,降低了CPU的消耗
索引的缺点有哪些
- 内存空间: 因为索引也是一张表,该表保存了主键与索字段,并指向实体表的记录,所以索引也是要占用空间的
表的更新速度: 虽然索引大大提高了查询速度,但同时还会降低更新表的速度,如对表进行INSERT、UPDATE和 DELETE,
因为更新表时,(mysql为例)MySQL不仅要保存数据,还要保存一下索引文件,而每次更新添加了新的字段都会调整,因为更新所带来的键值变化后的索引信息增加索引只是提高效率的一个因素,如果MySQL有大量数据的表,就需要花时间好好研究建立一个更优秀的索引,或优化查询
基本语法:
创建:
CREATE [UNIQUE] INDEX indexName ON mytable{(columnname(length))}
ALTER mytable ADD [UNIQUE] INDEX [indexName] ON (columnname(length))
删除:
DROP INDEX[indexName] ON mytable
查看:
SHOW INDEX FROM table_name
使用ALTER命令 **
有四种方式来添加数据表的索引:
ALTER TABLE tbl_name ADD PRIMART KEY(column_list);
语句中添加一个主键,这意味着索引值必须是唯一的,且不能为NULL
ALTER TABLE tbl_name ADD UNIQUE index_name(column_list);
这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)
ALTER TABLE tbl_name ADD INDEX index_name(column_list);
添加普通索引,索引值可出现多次
ALTER TABLE tbl_name ADD FULLTEXT index_name(column_list);
该语句指定索引为FULLTEXT,全局索引
哪些情况需要创建索引 **
主键自动自动建立唯一索引
频繁作为条件的字段应该创建索引
查询中与其他表关联的字段,外键关系建立索引
单键/组合索引的选择问题,Why? (高并发下倾向建立组合索引)
查询中排序的字段(排序字段若通过索引去访问将大大提高排序速度)
查询中统计或者分组字段
频繁更新的字段不适合创建索引(因为每次更新不单单是更新了记录,还会更新索引)
WHERE 条件里用不到的字段不创建索引
哪些情况下不创建索引
表记录太少
经常增删改的表: why? :提高了查询速度,同时降低更新标的速度,进行 INSERT,UPDATE,DELETE更新表时,既要更新保存数据,又要更新索引
注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果
标签:INDEX,name,数据库,更新,索引,ADD,ALTER 来源: https://www.cnblogs.com/nineberg/p/12264428.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。