Loading

摘要: General datadir=/var/lib/mysql 数据文件存放的目录 socket=/var/lib/mysql/mysql.sock mysql.socket表示server和client在同一台服务器 使用localhost进行连接,就会使用socket进行连接 pid_file=/ 阅读全文
posted @ 2021-03-01 16:29 BigBender 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 将表分成多个文件存储 官方地址:https://dev.mysql.com/doc/refman/5.7/en/partitioning-overview.html 分区表应用场景 表非常大以至于无法全部都放在内存中 只在表的最后部分有热点数据,其他均是历史数据 分区表的数据更容易维护 批量删除大量 阅读全文
posted @ 2021-03-01 13:31 BigBender 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 查询慢的原因 网络 CPU IO 上下文切换 系统调用 生成统计信息 锁等待时间 优化数据访问 减少访问数据量的方式进行优化 确认应用程序是否在检索大量超过需要的数据 确认mysql服务器层是否在分析大量超过需要的数据行 是否向数据库请求了不需要的数据 查询不需要的记录 多表关联时返回全部列 总是取 阅读全文
posted @ 2021-03-01 04:41 BigBender 阅读(47) 评论(0) 推荐(0) 编辑
摘要: SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) SELECT * FROM film JOIN film_actor USING (film_id) SELECT * FROM film, film_ 阅读全文
posted @ 2021-03-01 04:33 BigBender 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 索引的优点 大大减少了服务器需要扫描的数据量 帮助服务器避免排序和临时表 将随机io变成顺序io 索引的用处 快速查找匹配WHERE子句的行 从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引 如果表具有多列索引,则优化器可以使用索引的任何最左 阅读全文
posted @ 2021-03-01 03:49 BigBender 阅读(203) 评论(0) 推荐(0) 编辑
摘要: MySQL索引长度和区分度 索引长度和区分度是相互矛盾的 索引长度太短,那么区分度就很低,索引长度加长,区分度就高,但是索引也是要占内存的 需要找到一个平衡点 比如用户表有个字段username ,要给他加索引,问题是索引长度多少合适? 如果设置索引长度为1,占内存少,但是区分度低,区分度低索引的效 阅读全文
posted @ 2021-03-01 03:24 BigBender 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 使用索引扫描来做排序 mysql有两种方式可以生成有序的结果:通过排序操作或者按索引顺序扫描 如果explain出来的type列的值为index,则说明mysql使用了索引扫描来做排序 ​扫描索引本身是很快的,因为只需要从一条索引记录移动到紧接着的下一条记录 但如果索引不能覆盖查询所需的全部列,那么 阅读全文
posted @ 2021-03-01 03:19 BigBender 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 前缀索引 有时候需要索引很长的字符串,这会让索引变的大且慢 通常情况下可以使用某个列开始的部分字符串,这样大大的节约索引空间,从而提高索引效率,但这会降低索引的选择性 索引的选择性是指不重复的索引值和数据表记录总数的比值,范围从1/#T到1之间 索引的选择性越高则查询效率越高,因为选择性更高的索引可 阅读全文
posted @ 2021-03-01 03:09 BigBender 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 范式设计 列不可分 不能传递其他依赖 依赖主键 反范式设计 约定大于规定 主键选择 自然主键 事务属性中自然唯一标识 代理主键 与业务无关,无意义的数字 推荐使用,不与业务耦合,维护成本低 减少需求源码量 字符集选择 utf8,只能存储两个字节的汉字 所以需要设置成utf8mb4 纯拉丁字符,选择l 阅读全文
posted @ 2021-03-01 01:58 BigBender 阅读(60) 评论(0) 推荐(0) 编辑