• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql 优化(4)索引覆盖和最优索引

mysql 优化(4)索引覆盖和最优索引

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql优化,索引覆盖,最优索引等相关知识,希望本文的分享对您有所帮助
索引覆盖** 很重要的 一个概念 就是在索引上查找!!!

如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据.

这种查询速度非常快,称为”索引覆盖”

非聚促索引 索引文件对应了数据要回行 浪费掉了时间

索引和数据区别

索引是高效组织起来的树 , 节点 ,查找树叶 结构更优于数据

索引可以被导入内存中进行查询

索引本身数据结构简单 再放入内存 很快很快

。。。。。。。。。结果一回行 就满了。。。我擦。。。

所以呢 如果建立两条索引 index( uid , aid)

如果在索引树上已经覆盖了你想要的数据 如 select uid from msg where aid = 1

索引已经覆盖了想要查的 则直接在内存中的索引取出来 速度效率都非常快 自然不用回行查找

最优索引:

查询频繁,区分度高 ,长度小

尽量覆盖常用字段 , ------》索引覆盖

左前缀不易区分 逆转url 把内容到过来 ; 左前缀区分度大

伪哈希 crc32() 函数 来唯一区分 crc32('http://wwww.baidu.com');给urlcrc 建索引 而不是去给url 避免了索引

学会 explain 来查看效果 ;

伪hash索引效果

同时存 url_hash列

create table t10 (
id int primary key,
url char(60) not null default ''
);
insert into t10 values 
(1,'http://www.baidu.com'),
(2,'http://www.sina.com'),
(3,'http://www.sohu.com.cn'),
(4,'http://www.onlinedown.net'),
(5,'http://www.gov.cn');
alter table t10 add urlcrc int unsigned not null;

在sql存储时, crcurl== crc32(url),

因为crc的结果是32位int无符号数,因此当数据超过40亿,也会有重复,但这是值得的.

(索引长度为int4个字节)



多咧索引的设计

但从 商城的实际业务业务看, 顾客一般先选大分类->小分类->品牌,

最终选择 (1)index(cat_id,brand_id), + index(cat_id,shop_price)来建立索引

甚至可以再加 (3)index(cat_id,brand_id,shop_price),3个冗余索引 冗余字段 。。。



但(3)中的前2列和(1)中的前2列一样,再去掉(1)



index(cat_id,price) 和 index(cat_id,brand_id,shop_price); 也就是可以冗余 但是不能能重复 左前缀原则


以上就是mysql 优化(4)索引覆盖和最优索引的内容,更多相关内容请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于MYSQL中优化的一些方法
  • MySQL的重装问题解决方法
  • 如何解决mysql重装失败方法介绍
  • mysql服务启动不了解决方案
  • mysql 无限级分类实现思路
  • mysql 判断记录是否存在方法比较
  • mysql 优化日记
  • MYSQL 优化常用方法
  • MySQL 优化设置步骤
  • Mysql调优之profile的使用方法

相关文章

  • 2018-12-05MySQL数据库操作:创建、查看、使用、删除
  • 2018-12-05mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TAB
  • 2017-05-11Mysql命令行导入sql数据的代码
  • 2017-05-11MySQL 大数据量快速插入方法和语句优化分享
  • 2018-12-05Mysql-索引总结
  • 2017-05-11关于MYSQL的优化全面详解
  • 2018-12-05Oracle常见错误代码的分析与解决
  • 2018-12-05sql语句返回主键SCOPE_IDENTITY()
  • 2018-12-05分页存储过程(二)在sqlserver中返回更加准确的分页结果
  • 2018-12-05详细介绍SQL编程的一些良好好习惯

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Linux下修改MySQL编码的方法
    • MYSQL索引建立需要注意以下几点细节
    • 关于数据库中保留小数位的问题
    • MYSQL的排序sql语句
    • 在 SQLSERVER 中快速有条件删除海量数据
    • 如何在SQLSERVER中快速有条件删除海量数据
    • mysql 不能插入中文问题
    • SQL语句分组获取记录的第一条数据的方法
    • php实现数组纵向转横向并过滤重复值的方法分析
    • PL/SQL number型数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有