mysql
文章平均质量分 69
阿睿93
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql-优化案例
优化分页 select title,content from product_comment where status=1 and product_id=1111 limit 10,5; 第一步优化在status和product_id上构建联合索引 联合索引的顺序依据选择性决定 select count(distinct status)/count(*),count(distinct ...原创 2018-09-04 15:27:24 · 210 阅读 · 0 评论 -
阅读笔记-mysql innodb并发控制实现方式
参考:https://mp.weixin.qq.com/s/R3yuitWpHHGWxsUcE0qIRQ,文中例子截取自上文 redo、undo、回滚段 redo:主要解决如果每次修改数据都去磁盘上随机读写,效率很低。所以改为顺序写入到redo日志中然后定期去修改磁盘。即使是数据库奔溃也可以依靠redo重做。保证事务的acid undo:在事务提交之前,会将修改的旧数据存放到undo日志中,新数...转载 2018-10-11 23:29:55 · 401 阅读 · 0 评论 -
阅读笔记-mysql 并发控制思路
参考:https://mp.weixin.qq.com/s/R3yuitWpHHGWxsUcE0qIRQ 并发控制 常见的并发控制手段有:锁、数据多版本 锁 普通锁:操作数据前锁定数据,操作完释放,保持一致性 但是简单锁太粗暴,读也无法并行 共享锁:s锁,读取数据时使用。共享锁之间不互斥,可以读读并行 排他锁:x锁,修改数据时添加。写读、写写不能并行。类似于:写事务没有提交,读...转载 2018-10-11 21:13:43 · 266 阅读 · 0 评论 -
阅读笔记-mysql myisam和innodb的五个差异
count(*) 对于myisam引擎,会直接存储总行数,所以比较快;但是如果一旦添加了查询条件则统计方式和innodb相同(一行一行的扫描) 所以不管用什么引擎都要建立好索引 全文索引 MyIsam支持,innodb在5.6后支持 不过在高并发大数据的情况下都不支持使用内置的全文索引,要使用索引外置 索引外置待后续了解!!! 事务 myisam不支持,innodb支持 myisam可以...转载 2018-10-11 21:00:33 · 272 阅读 · 0 评论 -
mysql执行计划分析
MySQL5.6中支持这个功能,optimizer_trace create table test1(a int,b tinyint,c varchar(20),d int); alter table test1 add primary key (a); alter table test1 drop primary key; alter table test1 add unique key (b,...原创 2018-09-20 23:16:34 · 709 阅读 · 0 评论 -
mysql 方法和存储过程
变量 局部变量:declare:|用户可以使用DECLARE关键字来定义变量。然后可以为变量赋值。这些变量的作用范围是BEGIN…END程序段中 用户变量:@变量名:eg:@a 定义用户变量,作用域在整个链接 会话变量:在每次连接成功后会将全局变量拷贝一份到当前回话:set session var_name = value; show variables like “autocommit”;...原创 2018-09-20 22:53:20 · 421 阅读 · 0 评论 -
mysql分区、分表、分库、数据分片
当读压力很大的时候,可以考虑添加Slave机器的分式解决(读写分离、一主多备),但是当Slave机器达到一定的数量就得考虑分库了。 当写压力很大的时候,就必须得进行分库操作(分表分库)。 分区 将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。分区表 水平分区:通过某个属性列来分割。eg:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中...原创 2018-09-19 15:15:38 · 4367 阅读 · 0 评论 -
mysql 分区表
mysql分区 将一个表分解成多个表来进行多磁盘存放,不过这个分解对应用来说是透明的 相比单磁盘可以存储更多数据 在进行查询的时候可以只查询必要的分区,对于sum() count()可以并行执行 对于过期数据可以直接整个分区删除,效率高 多个磁盘获取更大的吞吐量 partition key:分区键,按照特定的键分区。如果表有主键唯一键,则分区键只能在这些中选;否则随意 同一个分区表的所有分区...原创 2018-09-18 22:27:55 · 226 阅读 · 0 评论 -
数据库表设计
数据库异常 由于数据库设计不合理,造成在增删改时可能出现问题 插入异常:想要插入的值依赖于其他无关紧要的值。如果在无关紧要的值不插入的时候,想要插入的值无法进行插入操作 更新异常:只想修改某一个数据,却不得不修改多行数据 删除异常:删除某一数据的时候,不得不同时删除其他无关紧要的数据 范式 第一范式:表中的所有字段都不能在分解为更基本的数据单位。所有字段都是单一字段属性,使用基础字...原创 2018-09-03 10:37:29 · 241 阅读 · 0 评论 -
innodb索引使用
本文针对的是mysql的innodb数据引擎来谈 索引分成两类:聚集索引、辅助索引 聚集索引:数据存放在聚集索引的叶子节点上,聚集索引依据主键进行顺序排序 辅助索引:除聚集索引外的索引,在innodb中叶子节点上存放的是主键,可以通过主键在聚集索引上找到对应的数据 这篇文章写的相当好:https://blog.youkuaiyun.com/IFollowRivers/article/detai...原创 2018-09-02 22:40:30 · 743 阅读 · 0 评论 -
mysql-读懂explain
explain id:执行顺序,数字越大优先级越高 select_type:每个子句的类型 simple:不包含子查询和union PRIMARY:内部包含子查询 SUBQUERY:子查询(select和where中的) DERIVED:子查询(from中的) UNION:出现在UNION后 UNION RESULT:从union的表中获取结果 table:来自哪张表 type:在表中查询用...原创 2018-09-02 20:09:24 · 217 阅读 · 0 评论 -
mysql 基础知识
事务 手动开启: begin rollback commit 自动开启 SET AUTOCOMMIT=0 禁止自动提交 SET AUTOCOMMIT=1 开启自动提交 delete truncate delete按行删除,删除后会记录到日志中,可以进行事务的回滚 truncate清空整个表,不会记录到日志中,不能进行事务回滚。删除的过程中不会激活与表有关的删除触发器。执行速度快。 https:/...原创 2018-09-23 10:34:34 · 265 阅读 · 0 评论
分享