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

2024免费网站推广大全三国网页游戏排行榜

2024免费网站推广大全,三国网页游戏排行榜,重庆企业建站系统,山西住房建设部网站什么是关系型数据库#xff1f; 其是建立在关系模型基础上的一种数据库#xff0c;这种关系分为#xff1a;一对一#xff0c;一对多#xff0c;多对多。 我们的数据存放在表中#xff0c;在表中会有一至多个字段#xff0c;一行就是一条数据。 mysql有哪些字段呢 其是建立在关系模型基础上的一种数据库这种关系分为一对一一对多多对多。 我们的数据存放在表中在表中会有一至多个字段一行就是一条数据。 mysql有哪些字段呢 数值类型 tinyInt,smallint,mediumIntint, bigInt。 浮点类型float,double。 字符类型char varchar, tinyText, mediumText, Text, longText, tinyBlob, mediumBlob, Blob, longBlob。 时间类型datedateTime year, time, timeStamp。 整数类型的unsigned属性有什么用一般在什么场景下使用呢 unsigned属性的作用就是不允许整数值为负数的情况在勾选该属性后正整数的上线就是原来的两倍。(就比如 tinyInt的范围 -128~127如果勾选这个属性后其范围就是0~255) 当我们的id从0开始做自增操作时就适合使用此属性这样id就可以取到更大的值。 char和varchar的区别及其使用场景是什么 char和varchar的区别 char字符串的长度是固定的而varchar字符串的长度是可变的。 char字符串在写入的字符串长度没有达到设置的长度时会从右边填满空格直达达到设置的长度在检索的是会去掉空格。 varchar字符串会使用一至两个字符来记录字符串的长度在检索的时候无需其他的处理。 char和varchar的使用场景 char适合使用在字符串的长度较小的情况就比如被MD5加密后的秘密身份证号。 varchar适合使用在那些字符串长度变化幅度较大的情况就比如文章的标题。 varchar(100)和varchar(10)的区别是什么 varchar(100)和varchar(10)都是可变长字符串但在字符串的储存上varchar(100)可以储存更长的字符串。 在存入的字符串长度相同的时候 1.varchar(100)和varchar(10)在磁盘上的存储大小是相同的。 2.varchar(100)和varchar(10)在内存上varchar会消耗更多的内存因为在内存操作时通过会分配固定大小的内存来进行操作而这个分配的大小就是根据设置的长度确定的是varchar(100)会更消耗内存。 DECIMAL和FLOAT/DOUBLE的区别是什么在java是如何操作DECIMAL的呢 DECIMAL和浮点数的区别  DECIMAL重要是用来记录存储的小数值而浮点数这是存储近似的小数值在浮点数中就比如 0.3可能会被用0.3000001表示只能是个近似值在一些数据中为了防止这种精度的损失就使用DECIMAL,就比如在我们处理金额信息的时候会使用DECIMAL。 java中操作DECIMAL 在java中我们主要是通过使用类Java.math.BigDecimal来操作的。 为什么不推荐使用Text和Blob呢 Text和char/varchar的作用类似但是它存储更长的字符串就比如可以储存博客内容。 Blob主要储存二进制的大对象就比如图片音频。 但在数据库规范中不推荐我们使用Text和Blob在字符串长度范围知道的情况下推荐使用varchar。Text和Blob存在大量的缺点。 缺点 1.不能设置默认值。 2.检索效率较低。 3.不能直接设置索引需要先设置前缀长度。 4.可能会消耗大量的网络和IO宽带。 5.可能会导致增删改查效率变低。 DATETIME和TIMESTAMP有什么区别 DATETIME没有时区信息而TIMESTAMP则与时区相关。 在储存空间上TIMESTAMP使用4个字节储存数据而DATETIME使用8个字节储存数据。因此TIMESTAMP所能表示的时间范围更小。 DateTime的表示范围1000-01-01 00:00:00 ~ 9999-12-31 23:59:59。 TimeStamp的表示范围1970-01-01 00:00:01 2037-12-31 23:59:59。 总结与时区是否相关储存的大小可表示的时间范围。 NULL和‘ ’的区别是什么 1.NULL代表的是一个不确定的值在select NULL NULL的值为false但是在使用distinct(去重)order By(排序)group By(分组)的时候NULL是相等的。 2.‘ ’的长度为0不会占用空间而NULL会占用空间。 3.NULL会影响聚合函数的结果如使用sumavgminmax等函数时会忽略NULL的值。 在使用count函数时如果是count(*)则会统计符合条件的数据即使数据中的值为NULL而如果是count(某个字段)则当改字段为NULL的时候就不会被统计进去。 4.在NULL做逻辑判断的时候不能使用比较远算符号而是要使用IS NULLIS NOT NULL 做判断的时候则可以直接使用比较运算符号。 Boolean类型是如何表示的 在数据库中没有Boolean类型所以一般使用Tinyint(1)表示当数据为0的时候表示为false当数据为1的时候表示为true。 MySQL的基础架构 连接器身份认证和权限校验。 缓存缓存对应的数据执行语句的时候会先查询缓存。在MySQL8.0后移除了该缓存因为该功能不太实用 分析器在缓存中没有查到数据后就会进入分析器中分析器主要就是判断语句的作用和判断语句是否存在语法错误。 优化器按照Mysql认为的最优方案来执行。 执行器执行语句然后从储存引擎中返回数据。在执行语句前会判断权限如果权限不够就会放回错误信息。 插件式储存引擎用于储存和读取数据的引擎。就比如InnoDB,MyISAM,Memory等储存引擎。 执行流程 连接器进行连接 - 进入缓存查询数据-如果没有数据就进入分析器分析语句的作用和判断语法的正确性-进入优化器按mysql认为的最优方法执行-进入执行器判断权限并执行语句-加入储存引擎读取数据。 MySQL支持那些储存引擎默认的储存引擎是什么 mysql支持的储存引擎  我们可以通过以下指令查询mysql支持的储存引擎。 select Engines 我目前知道的储存引擎就是: InnoDBMyISAMMemory。 InnoDB是mysql支持的储存引擎中唯一支持事务的引擎。 默认的储存引擎  在Mysql 5.5.5之前,默认的储存引擎是MyISAM。 在Mysql5.5.5之后默认的储存引擎就是InnoDB。因为innoDB支持事务 mysql储存引擎的架构了解过吗 mysql的储存引擎采用的是插件式架构mysql支持多种储存引擎我们甚至可以为不同的表设置不同的储存引擎储存引擎是基于表的而非基于库的。储存引擎可以理解为一个一个的插件。 我们还可以使用mysql定义的储存引擎实现的标准接口自定义储存引擎。 InnoDB和MyISAM的区别是什么 在最开始的时候默认的储存引擎就是MyISAM但是其不支持事务最终默认的储存引擎就被换为InnoDB。 1.InnoDB支持行级锁而MyISAM只支持表级锁在并发大量写操作时MyISAM锁住整张表就会导致大量的写无法完成。 2.InnoDB支持事务且实现了事务的四大特性而MyISAM不支持事务。 3.InnoDB和MyIAM的索引都是基于b树结构的但是其实现方式是不相同的InnoDB的数据文件就是索引文件而MyISAM的索引文件和数据文件则是分离的。 4.InnoDB异常崩溃后的自动恢复但数据发生崩溃后重启数据裤后数据就会恢复到崩溃之前而MyISAM是不支持的。 5.InnoDB的性能比MyISAM好。 6.InnoDB支持MVCC(多版本并发控制解决事务的隔离性防止出现脏读)而MyISAM不支持。MVCC就是基于行级锁实现的。 InnoDB和MyISAM如何选择 在现在基本上是不会考虑使用MyISAM如果你不在意并发能力也不需要事务的支持并且不在意崩溃异常后的自动恢复的话我们就可以使用MyISAM。 mysql 索引 mysql索引面试难点 mysql日志 日志类型为下: 1.错误日志(err log): 对于mysql的启动运行关闭过程进行记录。 2.二进制日志(binary log)主要是记录更改数据库的SQL语句。 3.一般查询日志(general log)主要是记录客户端发送到数据库中的所有SQL语句。 4.慢查询日志(slow query log)记录执行时间超过long_query_time的所有查询语句在后续解决慢查询的时候会使用到。 5.事务日志(rado log和undo log):rado log是做重日志undo log是做回滚日志。 6.中断日志(relay log)就是复制过程中产生的日志跟二进制日志差不多relay log针对的是主从复制中的从库。 7.DDL日志(metadata log): DDL语句就是对库的增删改操作记录DDL操作的日志。 什么是事务? 数据库事务可以保证多个数据库操作构成一个逻辑整体到达要么都成功要么都失败的效果。 数据库事务有四大特性 1.原子性(Atomicity)在事务中的sql语句要么都成功要么都失败。  2. 一致性(Consistency):在事务中总值不会发生改变。就比如转账问题A有100B有100那在sql语句执行完之后它们的总金额一直就是200这就是一致性。 3.隔离性(Isolation):事务和事务之间是不会相互影响的结果的。 4.持久性(Durability):在事务完成之后数据会持久化到数据库。 只有保证事务的持久性原子性隔离性才能保证事务的一致性。 并发事务带来了什么问题? 脏读 当事务读取到另一个事务中没有被提交的数据时就会可能出现脏读的情况。就比如当事务1对某个数据进行了修改且事务1还没进行提交此时事务2读取到事务1未提交的数据正好事务1进行了回滚操作事务1就脏读了。 丢失修改 当事务1和事务2都同时修改某个数据但是可能会出现事务2的修改将事务1的修改给覆盖了的情况。 就比如事务1和事务2都是同时获取某个数据的值假设值为20两个事务都是将值-1正确的值应该是18但是它们没有获得到实时的数据导致最终的值为19导致丢失修改的情况发生。 不可重复读注重的是记录的信息 一个事务1在事务中多次读取某个数据在此期间事务2对该数据进行了修改导致事务1两次读取某个数据不一致的情况导致不可重复读的发生。 幻读注重的时是记录的数量 和不可重复读类似事务1多次读取某个范围的数据但事务2往这个范围插入了新的数据当事务1下次读取数据就发现多出了几条数据就像读到不存在的数据似的导致幻读的发生。 幻读和不可重复读的区别是什么 不可重复读的重点是在多次查询某些记录发现记录被修改。 而幻读的重点是在多次查询某些记录但发现记录的数量发生改变。 可以说幻读是不可重复读的一种情况。 那为为什么要将幻读和不可重复读单独分开呢 幻读和不可重复读在解决方案上是不一样的不可重复读使用行级锁来解决的我们就是对应的记录行上锁防止被修改。而幻读则是使用间隙锁解决的我们无法对还没创建的记录加锁(不能使用行级锁的原因)。 MySQL有哪些隔离级别呢? READ-UNCOMMITED(读取未提交):最低的隔离级别允许读取没有提交的数据但是会导致脏读不可重复读幻读。 READ-COMMITED(读取已提交):允许读取并发事务已提交的数据可以防止脏读但是不能防止可重复读和幻读。 REPEATABLE-READ(可重复读):对同一个脏读字段读取都是一致的除非是被当前事务修改的。 可以解决可重复读和在脏读的问题但是还是解决不了幻读的问题。 SERIALIZABLE(可串行化):最高的隔离级别完全服从事务的四大特性所有的事务都是逐个执行的这样事务之间就不会相互刚干扰了可以解决脏读不可重复读幻读的问题。 MySQL的隔离级别是基于什么实现的呢? MySQL的隔离级别是基于锁和MVCC实现的。 可串行化是基于锁实现的读取已提交和可重复读都是基于MVCC实现的除可串行化以外的其他隔离级别也可能也需要使用锁可重复读需要加锁才能解决幻读的问题。 MySQL的默认的隔离级别是什么? InnoDB存储引擎默认的隔离级别是REPEATABLE-READ(可重复读)可以通过以下指令查询隔离级别。 select tx_isolation 表级锁和行级锁有了解过吗?二者有什么区别 MyISAM仅仅支持表级锁但是表级锁会对操作记录对应的表上锁在处理高并发的场景下效率十分的低。InnoDB支持表级锁和行级锁默认是行级锁。 行级锁的粒度更小仅对应某一条记录的行就行上锁在高并发的场景下性能更高。 二者的区别 表级锁锁定粒度最大的一种锁(除全局锁以外)是针对非索引字段加的锁对整个记录表加锁实现简单加锁速度快资源消耗少不会出现死锁的现象但有可能出现锁冲突的情况在高并发的场景下效率极低表级锁和存储引擎无关MyISAM和InnoDB都支持表级锁。 行级锁锁定粒度最小的一种锁是针对索引字段加的锁对记录的行进行加锁行级锁大大降低了锁冲突的问题在高并发的场景下效率较高但加锁开销大加锁速度慢可能会存在死锁的情况表级锁和存储引擎相关是基于存储引擎层实现的。 使用行级锁的时候需要注意什么? InnoDB的行级锁是针对索引字段加的锁而表级锁是针对非索引字段加的锁当我们执行updatedelete操作时如果where语句没有命中唯一索引或者索引失效的话就会导致扫描全表中的所有行并对每个行加行级锁导致效率低下所以需要注意。  InnoDB有哪几种行锁 记录锁(Record Lock)单个行记录上的锁。 间隙锁(Gap Lock)锁定某个记录范围的锁但是不包括记录本身。 临键锁(Next-key Lock)就是一种特殊的间隙锁它使用到记录锁和间隙锁其效果就是锁定某个范围并且包括记录本身。拥有解决幻读的问题。 InnoDB默认的隔离级别是可重复读行锁默认的就是使用临键锁如果操作的索引是唯一索引或是主键的话InnoDB会对临键锁进行优化将临键锁降级为记录锁只锁住索引本身而不是一个范围。 了解过共享锁和排他锁吗? 共享锁在事务在读取记录的时候会获取共享锁允许多个事务同时获取共享锁。兼容 排他锁也叫独占锁在事务修改记录的时候获取排他锁不允许多个事务同时获取排他锁如果某个记录已经被加上了排他锁不允许其他事务为这个记录添加其他的锁。不兼容 排他锁和任何的锁都不兼容而共享锁只能兼容共享锁。 意向锁有什么用 如果需要使用表级锁的话我们需要判断表中的记录是否存在行级锁如果使用遍历一条条查询的话效率十分的低下所以需要使用意向锁通过意向锁判断是否可以使用表级锁。 意向共享锁intention Share Lock IS锁事务有意向对表中的某些记录添加共享锁在加共享锁的时候必须先获取该表的IS锁。 意向排他锁intetion Exclusive Lock IE锁事务有意向对表中的某些记录添加排他锁在添加排他锁 的时候必须先获取该表的IE锁。 意向锁是由数据引擎自己维护的用户无法手动操作意向表在数据行添加共享锁和排他锁时先要获取数据行对应的表中的意向锁。 意向锁之间是相互兼容的。 意向锁和排他锁和共享锁是相互排斥的。这里的排他锁和共享锁是表级锁而排他锁和共享锁的行级锁和意向锁不会互斥 当前读和快照读 当前读普通读就是单纯的select语句。 快照读就是给行记录添加X锁和S锁。
http://www.zqtcl.cn/news/220976/

相关文章:

  • 深圳网站建设领先天津建设企业网站
  • 网站建设犭金手指C排名15温州 建网站的公司
  • 邢台建设银行官方网站公众号开发者密码是什么意思
  • 网站录入信息 前台查询功能怎么做营销网站主题有哪些内容
  • 网站SEO的评价触屏音乐网站源码
  • 网站开发u盘128够吗网站建设是固定资产嘛
  • 网站域名备案信息wordpress搜索文章内容
  • 出口退税在哪个网站做怎么在一起做网站上拿货
  • 网站友链查询传到网站根目录
  • 网站服务器端口设置北京专业网络直播制作
  • 可以免费做演播的听书网站南京企业自助建站
  • 软件下载类型网站怎么做长沙官网优化技术
  • 药品网站订单源码外贸网站建设服务器
  • 深圳网站制作07551免费开发网站
  • 如何直接用jsp做网站不写servletwordpress模板 单栏
  • 长沙网站建设哪个公司好设计公司网站 唐山
  • 原创小说手机网站制作需要多少钱郴州seo外包
  • 深圳市大鹏建设局网站网站关键词没排名怎么办
  • 水果商城网站制作多少钱c#如何做公司网站
  • 国内做进口的电商网站网站建设的经验做法
  • 蚂蚁搬家公司官方网站免费网站软件制作
  • 搭建网站要用到的工具外链代发免费
  • 肥城网站建设流程oem中国代加工网
  • 到底建手机网站还是电脑网站网站视频怎么做
  • 小区网站建设前端手机网站
  • 做一个网站价格WordPress好看的404
  • 查看注册过的网站在线网站软件免费下载
  • 门户网站建设公司价位域名出售网站
  • 亿级流量网站架构自己制作一个网站
  • 企业网站seo成功案例天津网站建设制作品牌公司