Mysql数据库索引使用

聚簇索引

聚簇索引存的是主键,它的叶子节点存的是这一行的数据
根据主键查询是,直接会得到这一行的数据

普通索引

普通索引存的是索引值,它的叶子节点是主键,如果主键的是个很长的字符串会占用很大物理空间,建议用自增ID

根据普通索引查询时,会拿到主键的值,然后再根据主键去拿对应的行数据,这就是所谓的回表,
如果只是根据普通索引查询主键,就会在查询的时候返回叶子节点,不会在进行回表,这叫索引覆盖

普通索引里会有唯一索引和联合索引俩个特例
唯一索引在插入和修改时会校验索引的值会不会重复,数据库开销比较大
联合索引会根据声明的顺序把字段拼接在一起,构成索引,在查询时遵循最左匹配的原则

索引使用注意问题 :

(1)以下需要注意不使用索引
<>, NOT IN, LIKE %_开头
<>,!= 可以用 a>1 or a<3 代替,NOT IN 可以用NOT exists代替
(2)在使用max() min()时最好加上索引.
(3)单索引要创建在确实需要的地方.
多列索引 有最佳左前缀特性 所以尽量左边的字段是最常用的.
(4)索引不会包括有NULL值,就是有NULL,索引就失效
(5)使用短索引,一个字段字太多,可以建立部分索引,只取前十个字.节约空间.
(6)不要在列上运算.例如:where MD5(“password”) = “myz”

你要取desc记录,可以按desc建立索引
id,c_t desc

sql 执行顺序

from
where
group by
having
select
distinct
union
order by
limit

在 2012 年的时候,我(作者)加入到奇虎 360 公司,为新的产品做技术选型。由于之前一直混迹在 Python 圈子 里面,也接触过 Nginx c 模块的高性能开发,一直想找到一个兼备 Python 快速开发和 Nginx c 模块高性能的产 品。看到 OpenResty 后,有发现新大陆的感觉。 于是我在新产品里面力推 OpenResty ,团队里面几乎没有人支持,经过几轮性能测试,虽然轻松击败所有的其 他方案,但是其他开发人员并不愿意参与到基于 OpenResty 这个“陌生”框架的开发中来。于是我一个人开始 了 OpenResty 之旅,刚开始经历了各种技术挑战,庆幸有详细的文档,以及春哥和邮件列表里面热情的帮 助,我成了团队里面 bug 最少和几乎不用加班的同学。 2014 年,团队进来了一批新鲜血液,他们都很有技术品味,先后都选择 OpenResty 来作为技术方向。我不再 是一个人在战斗,而另外一个新问题摆在团队面前,如何保证大家都能写出高质量的代码,都能对 OpenResty 有深入的了解?知识的沉淀和升华,成为一个迫在眉睫的问题。 我们选择把这几年的一些浅薄甚至可能是错误的实践,通过 Gitbook 的方式公开出来,一方面有利于团队自身的 技术积累,另一方面,也能让更多的高手一起加入,让 OpenResty 的使用变得更加简单,更多的应用到服务端 开发中,毕竟人生苦短,少一些加班,多一些陪家人。 这本书的定位是最佳实践,并不会对 OpenResty 做基础的介绍。想了解基础的同学,请不要看书,而是马上安 装 OpenResty ,把官方网站的 Presentations 浏览和实践几遍。 希望你能 enjoy OpenResty 之旅!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值