mysql索引笔记

本文探讨了哈希算法与二叉树在数据查询优化中的应用,阐述了它们各自的优势与劣势,并通过实例展示了如何利用这些技术提高查询速度。同时,文章还讨论了在构建索引时需要注意的问题,如避免过度索引、选择合适的索引类型等,以实现高效的数据管理和查询。此外,文章还介绍了全文检索的概念及其在SQL中的应用,强调了全文检索的限制和最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引理论


类型:
哈希
散列算法
原理:

哈希算法

将各个数据重组成编号,查询时将数据编号直接找到查询到的值

优势:

一次性找到该值

劣势:

数据连续性差

中 编号 005
国 编号 006
人 编号 007
民 编号 008
如果查询 中民


tree
二叉树算法
log2N
原理:当我查询3时,此时4比3大走子结点,2比3小走右结点此时找到值
优势:查询次数相对减少


1234567
4
  2 6
1   3      5  7




索引加快了查询的速度,但降低了增删改的速度


注意
换服务器导数据


.sql
新闻表500w行
连续插入500w次 建立索引5000w次,会导致工作量异常之大
处理办法,先删除索引,再导入
导入后统一加索引


不过度索引
索引条件列(where 后面最频繁的条件比较适宜索引)
索引散列值
如数据极散 不重复
过于集中的值不要索引
例如:给性别男,女加索引


索引实践



普通索引:仅仅是加快查询速度
唯一索引:行上的值不能重复
主键索引:主键不能重复 索引不一定是主键,一张表上只能有一个主键但是可以用一个或多个唯一索引
主键必须唯一
全文索引:

注意

使用like查询的效率异常的低

重点:

全文检索有停止词的概念,即碰到This is,you,my常见词时检索无结果,且无法检索中文

语法: select * from 表名 where match(列名) against('关键字')
推荐学习:sphinx,针对mysql做的一个插件支持中文检索


创建索引
查看一张表上所有索引
show index from 表名


建立索引
alter table 表名 add index(unique/fulltext) [索引名] 列名
特别 primary key唯一索引 不需要加索引名,因为主键只有一个


删除索引
alter table 表名 drop index 索引名
特别 primary key 删除时无需索引名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值