当前位置: 首页 > news >正文

外网专门做钙片的网站给孩子做衣服的网站

外网专门做钙片的网站,给孩子做衣服的网站,公司做网站,商品详情页模板概念 是一个开源的关系型数据库。 数据库事务及其特性 事务#xff1a;是一系列的数据库操作#xff0c;是数据库应用的基本逻辑单位。 事务特性#xff1a; #xff08;1#xff09;原子性#xff1a;即不可分割性#xff0c;事务要么全部被执行#xff0c;要么就…概念 是一个开源的关系型数据库。 数据库事务及其特性 事务是一系列的数据库操作是数据库应用的基本逻辑单位。 事务特性 1原子性即不可分割性事务要么全部被执行要么就全部不被执行。 2一致性。事务的执行使得数据库从一种正确状态转换成另一种正确状态 3隔离性。在事务正确提交之前不允许把该事务对数据的任何改变提供给任何其他事务 4 持久性。事务正确提交后其结果将永久保存在数据库中即使在事务提交后有了其他故障事务的处理结果也会得到保存。 数据库三范式 第一范式1NF无重复的列原子性 第二范式2NF属性完全依赖于主键 第三范式3NF属性不依赖于其它非主属性 sql语句在mysql中的执行过程 客户端发起sql请求与MySQL服务器建立连接如果是select会先查询缓存mysql8删除,没有命中缓存进入分析器解析处理更新前记录下log用于事务回滚。然后判断记录是否存在缓冲池中查询存在直接返回更新存在判断存在冲突。最后提交事务。 常见优化方式 a. 设计良好的数据库结构允许部分数据冗余尽量避免join查询提高效率。 b. 选择合适的表字段数据类型和存储引擎适当的添加索引。 c. mysql库主从读写分离。 d. 找规律分表减少单表中的数据量提高查询速度。 e. 添加缓存机制比如memcachedapc等。 f. 不经常改动的页面生成静态页面。 g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.mysql事务隔离级别 1、串行读 (Serializable) 2、可重复读 (RR默认) 确保同一事务的多个实例并发读取数据时会看到同样的数据行解决了不可重复读的问题。 3、读已提交 (RC) 一个事务只能看见已经提交事务所做的改变。可避免脏读的发生。 4、读未提交 (Read uncommitted) 所有事务都可以看到其他未提交事务的执行结果。 脏读读到了脏数据即无效数据。 不可重复读是指在数据库访问中一个事务内的多次相同查询却返回了不同数据。 幻读指同一个事务内多次查询返回的结果集不一样比如增加了行记录。脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。不可重复读是指在对于数据库中的某行记录一个事务范围内多次查询却返回了不同的数据值这是由于在查询间隔另一个事务修改了数据并提交了。幻读是当某个事务在读取某个范围内的记录时另外一个事务又在该范围内插入了新的记录。对幻读的正确理解是一个事务内的读取操作的结论不能支撑之后业务的执行。假设事务要新增一条记录主键为id在新增之前执行了select没有发现id为xxx的记录但插入时出现主键冲突这就属于幻读读取不到记录却发现主键冲突是因为记录实际上已经被其他的事务插入了但当前事务不可见。不可重复读和脏读的区别是脏读是某一事务读取了另一个事务未提交的脏数据而不可重复读则是读取了前一事务提交的数据。 innodb和myisam的区别 InnoDB支持行锁、事务处理、外键、安全恢复MyISAM不支持 InnoDB必须有主键MyISAM可以没有 建立索引需要考虑什么 1、选择合适的字段建立索引 根据查询频率如姓名、日期设置索引。字段大量重复、为空不适合建立索引。 尽量找那种占用空间小的类型字段做索引长字符串可以使用前缀索引减少索引大小提高查询速度。 2、多个经常查询列可以建立联合索引 遵循向左原则。 3、避免过度索引和频繁更新索引字段 占用磁盘空间、需要频繁维护字段浪费性能。 4、SQL优化慢查询 //使用 show processlist //观察是否有大量线程处于不正常的状态或者特征//使用 explaindesc 分析单条SQL语句一般做到range极好做到refALL全表扫描不推荐 如何MySQL和ES一致性 1、操作MYSQL时同步操作ES这种不推荐因为重试逻辑嵌在业务代码中服务宕机写入失败会一直重试。 2、通过binlog进行同步客户端从canal拉取消息进行消费再由客户端主动插入或者更新ES中的数据。也可以cannal发送binlog消息到消息队列client异步消费kafka中的消息。 b树是如何实现的 优势在哪 B树也称B-树,它是一颗多路平衡查找树B树和后面讲到的B树也是从最简单的二叉树变换而来的并没有什么神秘的地方下面我们来看看B树的定义。 每个节点中的关键字都按照从小到大的顺序排列每个关键字的左子树中的所有关键字都小于它而右子树中的所有关键字都大于它。所有叶子节点都位于同一层或者说根节点到每个叶子节点的长度都相同。每个节点都存有索引和数据也就是对应的key和value。 B树和B树的区别在于B树的非叶子结点只包含导航信息不包含实际的值每个叶子结点都存有相邻叶子结点的指针叶子结点本身依关键字的大小自小而大顺序链接便于区间查找和遍历。 由于B树在内部节点上不包含数据信息因此在内存页中能够存放更多的key。 数据存放的更加紧密具有更好的空间局部性。因此访问叶子节点上关联的数据也具有更好的缓存命中率。B树的叶子结点都是相链的因此对整棵树的便利只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。相邻的元素可能在内存中不相邻所以缓存命中性没有B树好。 MySQL悲观锁 在查询库存时加排它锁阻止其他事务对这条数据进行加锁或者修改 优点MySQL事物锁准确度高。缺点耗性能对MySQL压力较大。 DB::beginTransaction();try {$stock Skill::query()-where(id, $id)-lockForUpdate()-value(stock);if ($stock 0) {Skill::query()-where(id, $id)-decrement(stock);echo 抢购成功;} else {echo 库存不足抢购失败;}DB::commit();} catch (\Exception $e) {echo $e-getMessage();DB::rollBack();}MySQL乐观锁 不加锁实现锁效果MySQL乐观锁就是MVCC机制借助version版本号进行控制 优点因为不涉及锁数据并发量比悲观锁。缺点MySQL抗压瓶颈。 $info Skill::query()-where(id, $id)-first([stock, version]); if ($info-stock 0) {$skill Skill::query()-where([id $id, version $info-version])-update([stock $info-stock -1, version $info-version 1]);echo 抢购成功; } else {echo 库存不足抢购失败; }MVCC多版本并发控制。在MySQL InnoDB 中的实现主要是为了提高数据库并发性能用更好的方式去处理读-写冲突做到即使有读写冲突时也能做到不加锁非阻塞并发读。 当前读读取的是记录的最新版本读取时会保证其他并发事务不能修改当前记录会对读取的记录进行加锁。 快照读不加锁的非阻塞读。 持续更新未完待续~
http://www.hkea.cn/news/14564406/

相关文章:

  • 电脑游戏网站平台大全网站建设公司 经营范围
  • 做购物商城网站设计ai设计logo免费网站
  • 有做兼职的网站吗wordpress返回上一页插件
  • 怎么做一个电商网站吗网址站
  • 宣传旅游网站建设的观点是什么门户网站优点
  • 自己做的网站怎么让别人能访问曹县商城网站建设
  • 建设一个网站要多少钱上永远的吗深圳凌 网站开发
  • 云南建设网站郑州网站建设q.479185700棒
  • 一个人建网站现在建设校园网站用什么软件
  • h5网站快速搭建南昌net网站开发
  • 毕业设计如何用dw做网站wordpress的自定义菜单图标
  • 合肥做公司网站一般多少钱网页制作能干什么
  • 天津公司网站制作公司我们公司在做网站推广
  • 三更app下载网站网络公司好听的名字
  • 网站不显示内容吗做网站主流语言
  • 网站换服务器要怎么做seo现在还有前景吗
  • 慈溪企业网站建设公司怎么开发一款游戏
  • 珠海电商网站建设射阳做网站多少钱
  • 克拉玛依 网站建设建设工程合同管理论文
  • 个人电子商务网站 制作贵州省建设工程质量检测协会网站
  • 淘宝导购网站建设众v创业营网站开发
  • 公司企业网站建设注意事项小型广告公司简介模板
  • 企业建设网电商网站 内容优化
  • 安全网站建设的研究方法网络建设存在的问题
  • 江苏住房和城乡建设厅官方网站6做网站按钮
  • 大连网站程序开发中国大基建最新消息
  • 网站开发部建设银行网站适用浏览器
  • 网站推广建设识图搜索在线 照片识别
  • 营销网站有哪些怎样做网络推广好
  • 做汽车团购网站淮北市住房和城乡建设局网站