服装网站建设论文范文,做网站学什么代码,新建的网站百度搜不到,包装设计公司招聘信息一、事务
1.概念
事务是一组操作的集合#xff0c;它是一个不可分割的工作单位#xff0c;事务会把所有的操作作为一个整体一起向 系统提交或撤销操作请求#xff0c;即这些操作要么同时成功#xff0c;要么同时失败。
例子#xff1a;转账#xff0c;要求扣钱和进账…一、事务
1.概念
事务是一组操作的集合它是一个不可分割的工作单位事务会把所有的操作作为一个整体一起向 系统提交或撤销操作请求即这些操作要么同时成功要么同时失败。
例子转账要求扣钱和进账同时成功
默认MySQL的事务自动提交也就是说当执行一条DML语句MySQL会立即隐式的提交事务。 2.事务操作
1方法1
当设置为手动提交之后在执行任何DML语句时都要在最后添加commit语句才能提交成功
如果出现异常不要提交而是需要执行rollback语句将更改的部分数据进行恢复 2方法2 3.事务的四大特性
一致性指的是能量守恒 4.并发事务问题 1脏读未提交 2不可重复读提交后 3幻读 5.事务隔离级别
在最后一个隔离级别级别最高数据最安全但性能最差下解决了三个并发事务问题
mysql中的默认隔离级别是repeatable read 二、存储引擎/表类型
1.MySQL体系结构
存储引擎控制数据存储方式数据库服务器通过API与其交互 2.概念
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的而不是基于库的所以存储引擎也可被称为表类型。创建表的时候可以指定存储引擎不指定的话默认是InnoDB 3.InnoDB
InnoDB的逻辑存储结构 4.MyISAM 5.Memory 6.区别 7.选择
存储引擎没有好坏之分需要根据业务选择合适的绝大多数还是选择InnoDB 三、索引
1.概念
索引是帮助MySQL高效获取数据的数据结构有序这些数据结构以某种方式引用指向数据这种数据结构就是索引
2.引入
不加索引时要查询某一条数据需要全表扫描
加上索引时查询更加高效 优势提高查询效率、提高排序效率 劣势索引列占空间、降低更新表的速度 3.索引结构
索引是在存储引擎层实现的不同的存储引擎有不同的结构如果没有特别指明都是指的BTree索引 1引入二叉树
红黑树自平衡二叉查找树 2引入Btree多路平衡查找树
叶子结点和非叶子结点都会存放数据 中间元素向上分裂 3BTree结构
所有数据都会存到叶子结点叶子结点形成了一个单向链表 中间元素向上分裂 的同时要把此元素在叶子结点也保留同时用单向链表 4Hash结构 5思考 4.索引分类 回表查询如果通过姓名想查询到所在的这一行数据需要先在二级索引中查到ID再通过聚集索引查到一行数据因此根据ID查效率更高 5.索引语法
创建索引 创建联合索引多个字段同时加上索引字段的顺序有讲究使用最频繁的字段放在左侧 删除索引 6.性能分析
1SQL执行频率 2慢查询日志
通过慢查询日志来定位执行效率比较低超过预设的执行时间的SQL语句进而优化 3profiles查看耗时
如果有些简单的指令即使没有被记录到慢查询日志中但是效率也很低怎么查看具体用时明细 查看每一条SQL的耗时情况 查看一条语句各个阶段的耗时情况 4explain 四、SQL优化
1.insert优化 2.大批量插入数据
通过导入本地文件数据按一定规则组成加载到表中 3.主键优化 页
五、锁
1.概念
2.分类 3.全局锁---实现数据备份
1使用场景
对整个数据库实例加锁处于只读状态后续的更新操作语句都将被阻塞
典型的使用场景是做全库的逻辑备份获取一致性视图保证数据的完整性 注意备份不要在mysql命令中执行而是在windows中的命令行执行 2特点 3不加锁的备份 4.表级锁
1使用场景 2分类 3表锁
读锁不会阻塞其他客户端的读但是会阻塞写
写锁既会阻塞其他客户端的读又会阻塞其他客户端的写 4元数据锁 5意向锁
当线程A加了行锁之后如果线程B要加表锁需要一行行检查数据是否加了锁 线程A在加了行锁之后再对整张表加意向锁线程B通过看表锁与意向锁是否兼容来决定是否添加表锁如果不兼容就会阻塞直到线程A提交释放锁 意向锁与表锁之间的兼容情况 5.行级锁
1使用场景 2分类