mysql 优化

show profile 查询解析工具,指定具体的type

show performance schema 性能模块  监控mysql

show processlist 查看连接的线程个数,查看状态是否正常。

ip地址的保存,可用整形+函数 TNET_ATON   

varchar可变长度字符串:

1、使用最小的符合需求的长度,255字节内额外占用一个字节长度,255以上额外占用2个字节保持长度;

2、varchar(5)和varchar(255)保持相同内容,硬盘占用空间一样,内存空间按指定大小 ;

3、  变更长度锁表,超过255锁表

 应用场景:1、适合可长可短的内容如文章等 ;2、适合中文、更新比较少的内容,每次更新会重算使用额外存储空间保存长度;

char固定长度字符串:

1、最大长度255;2、保存时末尾空格删除;3、检索和写效率比varchar高,以空间换时间;

应用场景:适合长度波动不大的数据如 md5摘要、存储短字符串,经常更新的字段

 

二叉树——lvs(二叉平衡树)——红黑树(最小和最大子树不能超过2倍,红点不能相连,每条子树的黑点一致)

B树(存地址指针、键值(表中的主键)+数据)——B+树(存地址指针、键值,只在叶子节点存数据,叶子节点链式表)  一般是3层结构,可支撑千万级别数据  16k*16k*16k=4096k 

mysql如果并发高,内存不够,需要频繁计算内存,可能导致慢

回表:普通索引查询最后会再查id的索引,就是查2次索引就叫回表

覆盖索引:能够直接命中,不需要回表,比如直接查id

最左匹配:建索引的基础原则,联合索引严格匹配顺序,必须满足最左才能走索引

索引下推: 组合索引时同时过滤几个条件

 一个表最好5个索引以内、联合索引最好就5个字段以内。

分区表:范围分区、列分区、hash分区等。在文件中带#号,分区字段和索引字段一致。

group by 字段范围 group by INTERVAL(t1.id,1,3,5,8) 表示分组按id为小于1的,1到3的,3到5的,5到8,大于8来分组显示。

posted @ 2021-02-07 12:04  forrestXu  阅读(44)  评论(2)    收藏  举报