mysql性能优化
来源:互联网 发布:excel2007筛选重复数据 编辑:程序博客网 时间:2024/05/18 12:35
https://www.zhihu.com/question/19719997
存储的ip地址使用mysql INET_ATON(‘IP地址’)转化为无符号整形
修改数据库存放ip地址类型为无符号
索引
当表添加索引是否被使用的查看方法是
explain +查询语句
key表示使用的索引名称
索引类别
normal 普通
Unique 唯一
full text 用于很长文本
注:当where条件中有两种不同类型索引时,索引会失效
索引方法区别
1).如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一次算法即可找到相应的键值;当然了,这个前提是,键值都是唯一的。如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到相应的数据;
2).从示意图中也能看到,如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算法后,有可能变成不连续的了,就没办法再利用索引完成范围查询检索;
3).同理,哈希索引也没办法利用索引完成排序,以及like ‘xxx%’ 这样的部分模糊查询(这种部分模糊查询,其实本质上也是范围查询);
4).哈希索引也不支持多列联合索引的最左匹配规则;
5).B+树索引的关键字检索效率比较平均,不像B树那样波动幅度大,在有大量重复键值情况下,哈希索引的效率也是极低的,因为存在所谓的哈希碰撞问题。
在MySQL中,只有HEAP/MEMORY引擎表才能显式支持哈希索引(NDB也支持,但这个不常用),InnoDB引擎的自适应哈希索引(adaptive hash index)不在此列,因为这不是创建索引时可指定的。
还需要注意到:HEAP/MEMORY引擎表在mysql实例重启后,数据会丢失。
通常,B+树索引结构适用于绝大多数场景,像下面这种场景用哈希索引才更有优势:
在HEAP表中,如果存储的数据重复度很低(也就是说基数很大),对该列数据以等值查询为主,没有范围查询、没有排序的时候,特别适合采用哈希索引
- 性能优化之--MySql优化
- Mysql性能优化-查询优化
- 性能优化之MySQL优化
- MySQL性能优化
- MySQL性能优化
- MySQL 性能优化
- mysql 性能优化
- MySQL 性能优化
- MySQL性能优化
- MySQL 性能优化
- MySQL性能优化TIPS
- MySQL性能优化
- MySQL 性能优化
- MySQL性能优化
- MySQL性能优化
- MySQL 性能优化
- mysql sort 性能优化
- MySQL 性能优化
- 组建创业技术团队
- 华为机试在线训练-牛客网(31)配置文件恢复
- Excel-日常用到的
- LeetCode 9. Palindrome Number
- 【tool】ADDM和STA
- mysql性能优化
- 理解维特算法
- Java初学之final,static关键字
- 剑指offer经典编程(十五)
- 聚合函数
- 树形dp-P1270 “访问”美术馆P3360 偷天换日
- 【Spring 核心】装配bean(二) JavaConfig装配
- 成功的背后!(给所有IT人)
- WebSocket解读