栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

2021-10-12数据库复习

2021-10-12数据库复习

MySQL引擎的选择

MyISAM:不支持事务,不支持外键,支持全文检索和表级锁定,读写相互阻塞,读写速度快,节约资源,所以如果应用是以查询操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性,并发性要求不是很高,那么选择这个引擎是很合适的!!

InnoDB:是MySQL的默认存储引擎,由于InnoDB支持事务,支持外键,行级锁定,支持所有辅助索引(5.5.5后不支持全文检索)高缓存,所以用于对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,读写频繁的操作,那么适合选择,比如BBS,计费系统,充值转账等!!!

数据库的索引        

MySQL数据库中的索引是帮助MySQL高校获取数据的一种数据结构,索引的本质就是数据结构。

  • 普通索引
  • 唯一索引
  • 主键索引
  • 组合索引 将单列索引进行组合
  • 外键索引
  • 全文索引

如果一张表中有一列是主键列,那么会默认为其创建主键索引(主键列不需要单独创建索引)

show index from  查看索引

create index  索引名 on 表名(字段)

drop index 索引名 on 表名

ALTER TABLE 表名 ADD INDEX 索引名(字段); 普通索引

BTree

B+Tree特点

  • 非叶子节点只存储键值信息
  • 所有叶子节点之间都有一个连接指针
  • 数据记录都存放在叶子节点当中

优点:提高查询速度,减少磁盘io次数,树形结构较小

数据库最左匹配原则,索引的字段是可以任意顺序的。(联合索引)

如果条件中没有最左前缀,则无法命中原则。

数据库索引设计原则
  • 对查询频次较高,且数据量比较大的表建立索引
  • 使用唯一索引,区分度越高,使用索引的效率越高
  • 索引字段的选择,最佳候选列应当从where子句的条件中提取,如果where子句中组合比较多,那么应当挑选最常用,过滤效果最好的列的组合
  • 使用短索引,可以提升mysql访问索引的I/O效率
数据库的锁

事务的特性:

  • 原子性
  • 一致性
  • 隔离性  脏读 不可重复度 幻读
  • 持久性
锁机制:数据库为了保证数据的一致性,而使用各种共享的资源在被并发访问时变得有序所设计的一种规 则。 锁分类:

按操作分类:(可以体现在sql语句上)乐观锁(自己去实现,只有提交操作的时候检查是否违反数据完整性)、悲观锁

共享锁:也叫读锁,针对同一份数据,多个事务读取操作可以同时加锁而不互相影响,但是不能修改数据记录。

  • start transaction 、commit 开启事务 提交事务
  • select 语句 lock in share mode  加共享锁行锁
  • 根据索引列查加共享锁,会锁住当前行,行锁。
  • 如果没有根据索引列查询加共享锁,会锁住当前表,表锁
  • 共享锁可以互相兼容

排他锁:也叫写锁。当前的操作没有完成之前,会阻断其它操作的读取和写入。

  • select 语句  for update; 查询加排它锁,其它事务不可以加其它锁
MyISAM锁(不支持事务,所以不需要开启事务,加锁即可,表级)
  • lock tables 表名 read;加写锁,只支持写锁,所有连接只支持读数据,不支持修改
  • unlock tables;解锁的操作
范式级别越高,表与表之间的关系就越复杂 数据库表结构设计(http://open.yesapi.cn/list.htmlhttps://open.yesapi.cn/list.html) 数据库的分库分表策略

水平拆分 优点:不存在单库数据量过大,高并发的性能瓶颈,提高系统稳定性和负载能力

                不需要拆分业务模块

垂直拆分

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号