深入理解mysql
来源:互联网 发布:html 文字游戏源码 编辑:程序博客网 时间:2024/05/23 10:55
1.表的优化和列类型选择
表的优化
1,定长和变长分离
2,常用字段和不常用字段分离(不常用字段单独建表)
3,添加冗余字段提高查询(反范式查询(数据统计))
列类型选择
1,字段类型选择优先级
整形 > date, time(定长) > enum(枚举,内部用整形存储), char(定长,考虑字符集和校对集) > varchar > blob,text (int直接排序,字符串需要按照类型和校对规则排序,所以慢)
2,够用就行(大的字段浪费内存,影响速度)
3,尽量避免选择NULL(不利于索引优化,用特殊的字节来标注)
2,索引优化部分 (增加查询速度,排序速度,分组速度)
1,索引类型
1,btree索引(范围查询方便)
二分算法(tree)
2,hash索引(hash快,但是有使用限制,hash算法),只能在memory表使用,hash更快
1,存储数据不规律
2,无法对范围查询进行优化(hash没有规律)
3,无法对字段前缀进行优化
4,排序无法优化
3,btree 索引常年误区(给常用字段全部加索引,独立索引同时只能使用一个,使用联合索引提升效率)
多列加索引时遵循左前缀原则,同时存在多个索引时,索引满足原理是一个一个从左向右满足,最左边不存在时,索引不使用
explain来分析mysql 语句看语句用的索引
3-1: 聚簇索引(innodb) 和 非聚簇索引(myisam)
非聚簇索引(myisam):分文件存储 数据文件./ 索引文件 -》 指向行在磁盘上的位置
聚簇索引(innodb) =》指向一个对主键的引用(数据在叶子底下)
乱序插入数据时,会分裂叶子,导致mysql运行速度比顺序插入慢,取数据时还是按照顺序返回
是是
- mysql深入理解
- mysql深入理解二
- mysql索引深入理解
- 深入理解MySQL索引
- 深入理解mysql
- 深入理解MySQL分区表
- 深入理解Mysql字符集设置
- 深入理解MySQL字符集设置
- 深入理解Mysql读写分离
- 深入理解 MySQL 底层实现
- 深入理解mysql之BDB系列
- 深入理解php的MySQL连接类
- MySQL SQL Tuning:深入理解Order By
- 深入理解Java和MySQL乱码问题
- 深入理解MySQL的索引(二)
- MySQL中group_concat函数深入理解
- 深入理解mysql event事件调度器
- MySQL中group_concat函数深入理解
- 爬虫知识点(session)
- 欢迎使用CSDN-markdown编辑器
- 【java并发】CountDownLatch
- 习题6.3
- 使用无线数传 radio telemetry 连接pixhawk进入offboard模式进行mavlink协议通讯的尝试
- 深入理解mysql
- 洛谷3366 最小生成树模板题
- 蓝桥杯 算法训练 删除数组零元素
- 文章标题
- 【网易】重排数列
- Yarn 资源管理
- Vim 查找&替换
- 安卓自定义控件---安卓小机器人图标在背景图片上随手指滑动,点击背景图片任意位置出现小机器人图标
- 在vue中引用公共过滤器filter