回顾
1.什么是索引????
搜索引导,是一种特殊的数据结构(B+树)
2.为什么需要索引:
为了提高查询速度,
原理:通过缩小查询范围来减少IO次数
3.索引带来的影响
写入速度变慢了, 每次修改 如果修改了索引字段将引发索引结构的重建
磁盘占用变高
不一定能加速,得看sql是否正确使用到了索引
4.如何正确使用 参考昨日总结
1.尽量使用占用空间小的字段作为索引, 单个表中字段不要太多,不要再表中存储大数据,视频,音频
2.and语句至少包含一个具备索引的字段
3.避免使用or语句,用的话只有所有字段都有索引时才能加速查询
4.不要再等号左边做运算操作 ,保证等号右边是一个固定的值
5.模糊查询时,百分号不要放在前面
6.联合索引创建时,区分度高的放在最左边 低的放右边, 查询语句中必须包含最左边的索引字段
7.索引应该建立在区分度高的字段上
8.尽量保证查询语句中的字段是覆盖, 需要哪个字段就差哪个字段 不要查询其它的
查询计划 可以明确的显示mysql将要进行的操作,可以检查出语句不合理的放,
慢查询优化,可以设置一个最大执行时间,如果某条语句执行时间超过这个最大值,就自动记录这条一语句
ORM框架
ORM 对象关系映射, 指的是对象和数据库之间的关系
为什么做映射? 可以避免重复编写sql语句
ORM可以帮我们生成sql语句,执行,并获取结果,在转为对象
object -> databases -> object
手撸ORM框架
我们自动生成那些sql语句 ?
创建表的语句
增删改查
项目中的数据与数据库的对应关系
一个项目对应 一个数据库
一个类对应一个表
一个对象一条记录
一个属性对应一个字段
我们要达到的目的:
当在项目中创建一个类时就根据类型的信息自动生成表
使用元类来控制类的创建过程,
当我们创建一个对象时并保存时就根据对象的信息自动生成一条记录
给对象增加 存储方法
当我们要修改某一个对象的属性时,自动生成修改的语句
给对象提供一个 更新方法
当要删除的时候,自动生成删除记录的语句
给对象提供一个 删除方法
当我们需要获取某一类的数据时,自动生成查询语句,并将查询结果转为对象
各类提供一个用于获取对象的方法