美团一面准备 ----Mysql

1.B+树索引

数据结构
B树就是平衡树,B+树就是B树以及叶子节点的顺序访问
操作
插入删除会破坏,需要合并旋转等操作去稳定
与红黑树比较
1.更少的查找次数
2.利用磁盘预读(顺序)

2.索引

红黑树索引
哈希索引:Inoodb有一个自适应哈希索引(某个索引被用的很频繁时)
全文索引:MyIsam就支持全文索引

3.索引优化

独立的列(所要搜索的列不可以成为表达式等)
多列(建立多列索引)
索引列的顺序(重要的放前面)
前缀索引(对于那些Varchar,text等)
覆盖索引(索引包含所有需要查询的值)

4.存储引擎

Inoodb,Mysql默认的搜索引擎,当它满足不了的时候才会用别的
是聚簇索引,带有查询目录的,避免直接读磁盘,对性能有很大提高
Myisam没带查询目录的非聚簇索引,支持空间数据所用GIS
比较
事务:inoodb是事务型的,支持回滚
外键
备份
其他特性

5.读写分离

主服务器处理写操作,从服务器处理读操作
从服务器可以使用Myisam引擎

6.实际sql代码书写

如果在同一个表中算学生的总分和平均成绩
SELECT name,kemu,grade,SUM(grade),AVG(grade) FROM study GROUP BY name
在这里插入图片描述
如果是两张表,一张学生的一张成绩的
SELECT s.name,g.kemu,g.grade,AVG(g.grade) FROM student AS s LEFT JOIN grade AS g ON s.name = g.name GROUP BY s.name
在这里插入图片描述
以上的科目没有分开,实现科目分离
SELECT s.id, s.name,
max(case when g.kemu=‘china’ then grade else 0 end) as 语文,
max(case when g.kemu=‘math’ then grade else 0 end) as 数学,
max(case when g.kemu=‘english’ then grade else 0 end) as 英语,
sum(grade) as 总分,
avg(grade) as 平均分
from student s LEFT JOIN grade g ON s.name = g.name
GROUP BY s.name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值