MySQL笔记(索引排序及压缩索引)

1.使用索引来进行order by

(mark!!!看的笔记困惑,书上着墨不多,以后分析代码时细看!!)

只有当索引的顺序和order by子句的顺序完全一致,并且所有列的排序方向一样才可以。当联接查询时,orderby的必须是第一个表。

排序查询的where和order by需要形成索引的最左前缀,即总是要包含索引的左边的列。

例如对于表a(i int,j int ,k int,t int),在i,j,k上建索引

如下:

.....where i =.... order by j,k;

.....where i>....order by i,j;

如下则不能使用索引进行排序的查询

....where i=....order by j desc,k asc;

....where i=....order by j,t....引用不在索引中的列

....where i=....order by k.....不能形成最左前缀(隔着j)

....where i>....order by j,k...第一列上有范围条件

 

2.压缩索引

MyISAM使用前缀压缩来减小索引大小,默认情况下会压缩字符串,也可以压缩整数

可以使用create table时用PACK_KEYS控制索引压缩的方式。

PACK_KEYS在MySQL手册中如下描述:

如果您希望索引更小,则把此选项设置为1。这样做通常使更新速度变慢,同时阅读速度加快。把选项设置为0可以取消所有的关键字压缩。把此选项设置为DEFAULT时,存储引擎只压缩长的CHAR或VARCHAR列(仅限于MyIS

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值