zoukankan      html  css  js  c++  java
  • mysql

    一 mysql的逻辑分层

      连接层:提供与客户端连接的服务

      服务层:提供各种用户使用的接口(比如增删改查),提供sql优化器

      引擎层:提供各种数据存储的方式(innodb, myisam)

    innodb(默认): 事务优先(防止并发操作造成的错误或者混乱,所以适合高并发操作;支持行锁)
    myisam:性能优先,处理快,效率高(支持表锁)

      存储层:存储数据

    二 sql优化

      原因:性能低,执行时间太长,等待时间太长,sql语句欠佳(跨表查询,子查询之类),索引失效,服务器参数设置不合理(缓冲区,线程数等)

      sql优化,就是要优化索引,索引相当于书的目录,帮助mysql高效获取数据的数据结构,从这句话我们可以得出就是索引是数据结构。

      索引的弊端:

    弊端:
    1. 索引本身很大,可以存放在内存/硬盘(通常为硬盘)
    2. 索引不是所有情况均使用:1少量情况(比如1个字段或者两个字段,这个时候就没有必要建索引)2.频繁更新的字段 3.很少使用的字段
    3. 索引会降低增删改的效率(降低增删改,提高查询速率)

      索引的优势:

    1. 提高查询效率(实际上是降低IO使用率)
    2. 降低CPU的使用率(比如一张表中我们查询的是年龄,mysql用的是b树,b树约定俗称的都是左小右大,假如没有索引的话,就会先把这张表拿出来重新排下序,b树是已经按索引拍好序的,所以在这里就降低了CPU的使用率)

      三层b树可以上百万条数据,b树一般都是指b+,数据全部都存放在叶节点中,所以b+树中查询任意的数据次数为n次(b+树的高度)

    三 索引

      分类:单值索引,给单列加索引,比如给age加一个索引;一个表有多个单值索引

            主键索引:不能重复,不能是null

         唯一索引:不能重复,比如一张表中的id值,可以是null

            复合索引:多个列构成的索引(相当于 二级目录)

      创建索引:

            create 索引类型 索引名 on 表(字段)

          单值:create index dept_index on tb(name);

          唯一:create unique index name_index on tb(name);

          复合:create index dept_name_index on tb(dept,name);

      注意:如果一个字段是primary key ,则该字段默认就是主键索引

      删除索引:drop index 索引名 on 表名;

      查看索引:show index from 表名

    四 避免索引失效的一些原则

      (1)复合索引

        a.复合索引不要跨列或无序使用(最佳左前缀)(a,b,c)

        b.复合索引,尽量使用全索引匹配(a,b,c)

      (2)不要在索引上进行任何操作(对索引进行加减乘除,函数的运算,类型的转换),否则索引失效

    五 锁机制:解决因资源共享而造成的并发问题

       写锁:若果当前操作没有完毕(买衣服的一系列操作),则无法进行其他的读锁,写锁

           操作范围:a.表锁。一次性对一张表整体加锁,myisam存储引擎使用表锁,开销小,加锁快,无死锁,并发度低。

               b.行锁。一次性对一条数据加锁,innodb存储引擎使用的是行锁,与表锁相反。

    六 主从复制

       主数据库将改变的数据存储在二进制日志文件,从数据库中的io线程读取主数据库中的数据存储在广播日志文件中,从数据库中的sql线程将广播日志中的数据写入database中

    生前无需久睡,死后自会长眠,努力解决生活中遇到的各种问题,不畏将来,勇敢面对,加油,你是最胖的,哈哈哈
  • 相关阅读:
    ORACLE MOS 翻译
    Oracle内部latch获取函数简介
    oracle cost
    oracle function dtrace
    Oracle hidden costs revealed, Part2 – Using DTrace to find why writes in SYSTEM tablespace are slower than in others
    DTrace Oracle Database
    Oracle8i Internal Services
    oceanbase 分布式数据库
    中国国家安全漏洞库
    interesting-exploit
  • 原文地址:https://www.cnblogs.com/panshao51km-cn/p/11970800.html
Copyright © 2011-2022 走看看