
数据库
海鸥-号
这个作者很懒,什么都没留下…
展开
-
MySQL底层原理综述
1、概念1.1 数据库事务:简单的说事务就是一组原子性的SQL语句。可以将这组语句理解成一个工作单元,要么全部执行要么都不执行。默认MySQL中自动提交时开启的(start transaction)事务的ACID特性如下:原子性:事务中的所有操作要么全部提交成功,要么全部失败回滚。场景:UPDATE cs_user SET age = 18 , gender = '女' WHERE id ...原创 2019-02-02 23:17:17 · 27240 阅读 · 5 评论 -
MySQL锁综述
乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。通常实现是这样的:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获取出versi...原创 2019-02-02 23:45:43 · 169 阅读 · 0 评论 -
MySQL有哪几种join方式,底层原理是什么
下面是例子分析表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115 表B记录如下:bID bName1 20060324012 ...原创 2019-02-07 20:10:06 · 907 阅读 · 0 评论 -
Mysql limit 分页机制和优化实例
MySQL limit 操作常用于程序中的分页,但是如果你没有了解过limit的机制和相关优化原理,一旦数据量上升,程序的性能将会惨不忍睹,所以下面总结几种mysql关于limit优化实例,每个实例后对应都会有演示。(演示的数据来自15年暑期实习的p2p流量数据,表数据量约300W行)1、sql中会范的错误...转载 2019-02-07 20:23:12 · 612 阅读 · 1 评论 -
mysql如何获取慢SQL,以及慢查询的解决方式
浅谈MySQL中优化sql语句查询常用的30种方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: sel...原创 2019-02-07 21:00:00 · 29546 阅读 · 5 评论 -
mysql主从同步原理与实战
1、什么是mysql主从同步?当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。2、主从同步有什么好处?水平扩展数据库的负载能力。 容错,高可用。Failover(失败切换)/High Availability 数据备份。3、主从同步的原理是什么?首先我们来了解master-slave的体系结构。如下图:不管是delete、upda...转载 2019-02-07 21:21:09 · 329 阅读 · 0 评论 -
MySql 范式和反范式
范式和反范式设计关系型数据库时,需要遵从不同的规范,设计合理的关系型数据库,不同的规范被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余约小。在关系型数据库中有六中范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),BCNF,第四范式(4NF),第五范式(5NF)。一般数据库设计到第三范式就行了。第一范式1NF是对属性的原子性约束,要求属性具有原子性,不可分。属性不可...转载 2019-02-07 21:39:17 · 644 阅读 · 0 评论