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

mysql 优化(5)索引与排序

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

匿名通过本文主要向大家介绍了mysql优化,索引,排序等相关知识,希望本文的分享对您有所帮助
排序可能发生2种情况:

1: 对于覆盖索引,直接在索引上查询时,就是有顺序的,
using index , 也可能是在查询时候沿着索引字段排序查询 。 此时排序代价低

2: 先取出数据,形成临时表做filesort(文件排序,但文件可能在磁盘上,也可能在内存中)



我们的争取目标-----取出来的数据本身就是有序的!
利用索引来排序.



比如: goods商品表, (cat_id,shop_price)组成联合索引,

where cat_id=N order by shop_price ,可以利用索引来排序,

select goods_id,cat_id,shop_price from goods order by shop_price;

// using where,按照shop_price索引取出的结果,本身就是有序的.



select goods_id,cat_id,shop_price from goods order by click_count;

// using filesort 用到了文件排序,即取出的结果再次排序

mysim 执行时全找到 然后排序 然后去回行取 只要有索引走索引 其实不大 联合索引 点击量 和 id 可以建索引

innodb 就在叶子底下

重复索引无意义

冗余索引 提高效率 两个索引会发挥场合不同 租用不一样 左键;

索引的碎片和维护

大网站基本不去删除数据 在磁盘上会产生一个洞; 并且不容易被再次利用的短字节会不容易再次利用

内存的碎片化 ;

修复漏洞

在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.

我们可以通过一个nop操作(不产生对数据实质影响的操作),
来修改表.

比如: 表的引擎为innodb ,
可以 alter table xxx engine innodb 本质上对数据并没有任何影响 来修改表 但是会重新整理一遍数据



optimize table 表名 ,也可以修复. 优化这张表 帮你去修复 ;



注意: 修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐.

这个过程,如果表的行数比较大,也是非常耗费资源的操作.

所以,不能频繁的修复. 周期较长一点!!!!



如果表的Update操作很频率,可以按周/月,来修复.

如果不频繁,可以更长的周期来做修复.

以上就是mysql 优化(5)索引与排序的内容,更多相关内容请关注微课江湖()!

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

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

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

相关文章

  • 2017-05-11深入理解mysql SET NAMES和mysql(i)_set_charset的区别
  • 2018-12-05mysql家谱表查询某人所有后代
  • 2018-12-05SQL对时间处理的语句小结
  • 2018-12-05MYSQL数据表损坏的原因分析和修复方法小结(推荐)
  • 2018-12-05Mysql+Tomcat建立Docker多容器连接的方法
  • 2017-05-11MySQL 客户端不输入用户名和密码直接连接数据库的2个方法
  • 2018-12-05详解mysql基于正则实现模糊替换字符串的方法
  • 2018-12-05Centos7如何利用yum安装Mysql5.7.19的具体方法
  • 2018-12-05MySQL之-mysql报错1449的解决方法
  • 2018-12-05MySQL ODBC 3.51 Driver配置时出现Access Denied的问题解决

文章分类

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

最近更新的内容

    • 批处理 动态sql
    • mysql 常见命令和学习心得
    • mysql数据库添加用户及分配权限具体实现
    • MySQL里面的子查询实例
    • MySQL 的 IFNULL 查询
    • MySQ中基本语法与语句的介绍
    • 分享mysql数据库常见的优化操作
    • mysql 备份与迁移 数据同步方法
    • MySQL 联合索引与Where子句的优化 提高数据库运行效率
    • 基于mysql多实例安装的深入解析

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

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