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

温州网站开发服务商mean网站开发

温州网站开发服务商,mean网站开发,长春网站制作建设,wordpress上传图片不显示概念 是一个开源的关系型数据库。 数据库事务及其特性 事务#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.w-s-a.com/news/165453/

相关文章:

  • 网站logo怎么做才清晰千库网官网首页登录
  • 山西省建设银行网站首页长沙网站建设制作
  • 襄阳市做网站 优帮云百度搜索次数统计
  • 自己做视频直播网站盐城做网站多少钱
  • 买个网站服务器多少钱重庆做的好的房产网站
  • 深圳定制建站网站建设推广关键词怎么设置
  • 宝山网站建设 网站外包修改wordpress版权
  • 建立网站的基本步骤新网站多久会被百度收录
  • 软件设计开发流程图廊坊关键词seo排名方案
  • 南山住房和建设局网站网站被k 多久恢复
  • 阿里买域名 电脑做网站做简历哪个网站好
  • 个人网站免费服务器单页网站的域名
  • 网站设计简单讲解小店怎么做网站
  • 校园网站的意义wordpress去除更新
  • 网站开发用python吗常用的网页开发工具有哪些
  • 北京市住房建设投资建设网站做商城网站要哪些流程
  • seo网站改版杭州建设局官网
  • 物流网站建设策划书泰然建设网站
  • 百度做网站的费用采集发布wordpress
  • 网站运维公司有哪些防录屏网站怎么做
  • 昆明做网站seo的网站制作专业
  • 聊城制作手机网站公司wordpress 头条
  • 商城微网站模板一般电商网站做集群
  • winserver2008上用iis发布网站嵊州网站制作
  • 网站内页权重怎么查辽宁建设工程信息网怎么上传业绩
  • 丰都网站建设价格镇江网站制作费用
  • app手机网站建设黄网站建设定制开发服务
  • 百度网盘app下载徐州优化网站建设
  • 附近网站电脑培训班展台设计方案介绍
  • 河南便宜网站建设价格低上海高端室内设计