zoukankan      html  css  js  c++  java
  • 1、mysql

    存储引擎及区别

    1、MyISAM 是非事务的存储引擎,适合用于频繁查询的应用。表锁,不会出现死锁,适合小数据,小并发。

    2、innodb是支持事务的存储引擎,合于插入和更新操作比较多的应用,设计合理的话是行锁(最大区别就在锁的级别上),适合大数据,大并发。

    索引方法

    1、B+Tree索引

    2、Hash索引

    索引类型

    1、Primary 主键索引

    2、Unique 唯一索引

    3、NOrmal 普通索引

    4、Spatial 空间索引(只能用于myisam引擎)

    5、FullText 全文索引(长字符串用)

    最左前缀

    1、联合索引的多个字段中,只有查询条件为联合索引的第一个字段时,查询才能使用索引

    2、对于索引的第一个字段,用like时左边必须是固定值,通配符只能出现在右边

    覆盖索引

    覆盖索引是指,索引上的信息足够满足查询请求,不需要再回到主键上去取数据。

    事务的ACID属性

    1、原子性(Atomicity):事务是最小的工作单位

    2、一致性(Consistency):要么都成功,要么都时报

    3、隔离性(Isolation):多个事务间不会相互影响

    4、持久性(Durability):事务不可逆

    事务隔离级别

    1、读未提交

    2、读提交

    3、可重复读(mysql innodb默认隔离级别)

    4、串行读

    并发事务带来的问题

    1、更新丢失

    1.1 回滚覆盖

    1.2 提交覆盖

    2、脏读,读到了其他事务为提交已修改的数据

    3、不可重复读,两次读取的数据不一样 

    4、幻读,两次读取的数据条目不一致

    MVCC(Multi-Version Concurrency Control)

    多版本并发控制(乐观锁的一种实现方式)

    每一行数据中额外保存两个隐藏的列:当前行创建时的版本号和删除时的版本号(可能为空,其实还有一列称为回滚指针,用于事务回滚,不在本文范畴)。这里的版本号并不是实际的时间值,而是系统版本号。每开始新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,用来和查询每行记录的版本号进行比较

    数据库三大范式

    1、属性原子性不可再分(关系型数据库都满足)

    2、非主属性要依赖于主属性

    3、非主属性的属性不能有传递依赖关系

    char和varchar的区别

    1、char定长,不足部分右填充空格补足,varchar不定长,指定长度后不空格补足

    2、char检索效率搞,varchar检索效率低

    3、char最大长度255,varchar

    enum与set区别

    都是列表,enum单选,set多选

    mysql锁类型

    表级锁(意向共享锁、意向排他锁)

    行级锁(共享锁、排他锁)

    页面锁

    慢sql排查

    -- profiling 是否开启
    select @@profiling;
    -- 查看sql执行时间
    show profiles;
    -- 查看sql耗时详情
    show profile for query 155;

    查看版本

    select version()

    查看表索引

    show index form table_name

    带行号查询

    5.7以及之前版本

    select @RN := @RN + 1 ,t1.*  from tabke_name t1,(select @RN:=0)  t2

    8。0版本(同SQL server写法)

    select row_number() over(order by t1.id)  as RN,t1.* from table_name t1

    sqlserver 写法

    替换插入

    insert into table_name(a,b) values(1,2) on duplicate key on update b = b+1;

    replace into table_name(a,b)values(1,2);

  • 相关阅读:
    Stm32cubemx_v6-1-1 提示需要JDK8版本,但已经安装JDK11 exe4j
    [Linux 内核驱动开发] 根据设备寻找驱动等信息
    DNS/mDNS/DoH/DoT 等DNS协议概括
    常用的在线工具网站
    计算机学科名词解析:透明
    Makefile 的用处,解决已包含头文件但还是 undefined reference to
    Oracle DataBases 12C Realeased2
    jz2440 开发板玩法
    树莓派 Zero W 安装与内核驱动开发入门
    深度学习与机器人结合 帮你做家务
  • 原文地址:https://www.cnblogs.com/ares-core/p/13080155.html
Copyright © 2011-2022 走看看