随笔分类 -  高性能mysql笔记

摘要:列要独立:where查询语句中,索引部分最好放在等式左边,等式右边放置比较值,而且左边最好都是索引,Mysql并不能分辨某些情况,例如 WHERE A + 1 = 5;就无法用到A的索引 explain 命令获取 select 语句的执行计划 前缀索引 对于TEXT、BLOB类型或者很长的varch 阅读全文
posted @ 2021-12-10 21:13 NoBugNoError 阅读(44) 评论(0) 推荐(0)
摘要:索引是在引擎层实现,因此有各种各样的索引 B树索引 大多数mysql引擎都支持B树索引,某一些不支持,如Archive InnoDB使用B+树,而NDB集群引擎使用T树 myISAM使用前缀压缩技术,因此索引更小 B树的结构更适合查找范围数据,例如按字母顺序查找名字 索引对多个值的排序的依据是根据定 阅读全文
posted @ 2021-12-04 21:34 NoBugNoError 阅读(127) 评论(0) 推荐(0)
摘要:alter table更改表时,通常是创建一个新表,再把原来的表数据复制到新表中 alter table服务会导致MySQL服务中断 不是所有的alter table 都会引起MySQL表重建,例如以alter column操作改变表的属性默认值,只会修改.frm文件的内容 通过.frm文件快速修改 阅读全文
posted @ 2021-12-04 20:43 NoBugNoError 阅读(149) 评论(0) 推荐(0)
摘要:汇总表是用来进行优化积累查询的。例如,要计算一个网站在24小时内发送消息的数量,如果将整张消息记录表都统计一遍,就会变得效率低下。设置一张汇总表,每一条记录里存放着每一个小时内的消息数量,然后我们可以查询这张汇总表,而不用查询整张消息记录表。当然,由于是整小时记录,所以表中数据并不是24小时内的数据 阅读全文
posted @ 2021-11-29 19:56 NoBugNoError 阅读(610) 评论(0) 推荐(0)
摘要:范式可以减少数据冗余,方便修改 部分依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。 完全依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但 阅读全文
posted @ 2021-11-29 18:50 NoBugNoError 阅读(158) 评论(0) 推荐(0)
摘要:标识符常常用来做联表操作,所以为整数最好 通常不要轻易使用enum和set类型做标识符 避免字符串做标识符 确保关联表的标识符类型一致,部分类型可以相互转换,不过可能因此导致难以察觉的bug 慎重使用ORM系统和框架,因为我们可以设计更优化的储存模式 阅读全文
posted @ 2021-11-29 17:09 NoBugNoError 阅读(32) 评论(0) 推荐(0)
摘要:日期时间类型 mysql通常有两种日期时间类型:TIMESTAMP和DATETIME TIMESTAMP和DATETIME大多数时候都能提供相应的服务 TIMESTAMP分时区,但DATETIME不分时区 TIMESTAMP表示范围比DATETIME小,也因此比DATETIME占用空间小 TIMES 阅读全文
posted @ 2021-11-25 22:10 NoBugNoError 阅读(92) 评论(0) 推荐(0)
摘要:定义一个枚举类型 create TABLE xxx( e ENUM('AA','BB','CC') NOT NULL) 插入枚举类型值 INSERT INTO xxx(e) VALUES('AA'),('BB') 枚举类型和一般字符串类型的比较 在mysql中,枚举类型会在表的内部被替换为一个整数, 阅读全文
posted @ 2021-11-25 21:50 NoBugNoError 阅读(223) 评论(0) 推荐(0)