Fork me on GitHub

python | mysql 笔记

  1. 存储引擎:存在引擎就是存储机制,数据按照什么样方式存储,怎么存

   查看所有存储引擎

   show engines\G

概念:

事务:

  操作一系列sql语句,只有都执行成功的才算成功,有一个不成功,就恢复到最初始的状态,这个就是事务

表级锁:

  有一个人在修改这张表,就会上锁,其他人不能修改

  特点:内存开销大小,不支持并发

行级锁:

  有一个人在修改这张表中的一条记录(数据),这个条数据就会上锁,其他人不能修改这个条数据

  特点:内存开销大,支持并发

  (一般使用在大型网站例如:淘宝,京东 其中修改一条数据不能同时修改,但是其他数据是可以修改的,表级锁不可以)

外键:

    把多张表通过一个字段关联到一起,叫做外键(一般同表的ID来建立表的关联的)

  

  种类:

  InnoDB : 5.6 之后默认的存储引擎

      特点: 支持实务,行级锁,外键

  MyISAM :5.6 之前默认的存储引擎

      特点:表级锁.

  MEMORY :用内存来存储数据(缓存)[目前更多使用的是redis数据库,来取代]

       特点:速度快,不能进行持久化存储

       (redies,如果在断开时候,会生成一个文件,所以起到一个持久存储的作用)

  BLACKHOLE:黑洞, 用作同步数据的一种引擎方式,[主从数据库集群]

        特点:所有数据不会写入,但是会提示成功,

  

  BLACKHOLE使用场景

  ***** 如图 :用户访问网站时候,先通过负载均衡系统,来进行用户的分发,底层会用一些类似取模的算法,给用户进行分配,目的让服务器,所抗住的并发均衡;

      有的用户需要查询,有的用户需要修改或者添加,但是整体查询次数会远远大于增删改的次数,

      那么这时搭建主从数据库,主数据库主要负责写入,从数据库负责读取,

      为了让主从数据库,数据同步,中间加上一台服务器,用于同步,那么这台服务器所用的存储引擎就是blackhole

      专门帮助主数据库进行binlog日志生成和分发,从数据库拿到binlog日制后,开始同步自己的数据

      这样好处,主数据只专注写入,不用考虑分发其他数据等操作,减少服务器的压力;

      中间blackole 的mysql 服务器不需要生产或者消费数据,只是单纯的过滤生产binlog日志,所以选择blackhole存储引擎.

    

 

posted @ 2019-06-16 00:44  MR_黄Python之路  阅读(136)  评论(0编辑  收藏  举报