A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、事务
事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个SQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。
特点:原子性、一致性、隔离性、持久性

2、MySQLmyisaminnodb的区别
(1)InnoDB支持事物,而MyISAM不支持事物
(2)InnoDB支持行级锁,而MyISAM支持表级锁
(3)InnoDB支持MVCC, MyISAM不支持
(4)InnoDB支持外键,而MyISAM不支持
(5)InnoDB不支持全文索引,而MyISAM支持。

3、MySQL中视图和表的区别?
(1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表,而表不是。
(2)视图没有实际的物理记录,而表有。
(3)视图是窗口,表是内容。
(4)视图是逻辑概念的存在,不占用物理空间;而表占用物理空间。
(5)表可以及时对它进行修改;而视图只能用创建语句来修改。
(6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。
(7)从安全来说,视图可以防止用户直接接触表,因而用户不知道表结构。
(8)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
(9)视图的建立和删除只影响视图本身,不影响对应的表。

4、存储过程(procedure)和函数(function)区别
本质上它们都是存储程序。函数只能通过return语句返回单个值或表对象;而存储过程不允许执行return语句,但是可以通过output参数返回多个值。函数限制比较多,不能用临时变量,只能用表变量,还有一些函数都不可用等等;而存储过程的限制相对就比较少。函数可以嵌入在SQL语句中使用,可以在select语句中作为查询语句的一个部分调用;而存储过程一般是作为一个独立的部分来执行。

5、事务隔离
(1)Read uncommitted 未提交读(RU
     最弱的隔离级别,事务中的修改即使没有提交,对其他事务也都是可见的。(即脏读)
(2)Read committed 提交读 不可重复读(RC
      大多数数据库系统的默认隔离级别。 解决了脏读的问题,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。一个事务两次执行同样的查询,可能会得到不一样的结果。
(3)Repeatable read 可重复读(RR
        mysql默认隔离级别。解决了脏读的问题。该级别保证了在同一个事务中多次读取同样记录的结果是一致的。 该级无法解决幻读的问题,幻读是当某个事务在读取某个范围内的记录时,另一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻读。
     innodbxtradb存储引擎通过多版本并发控制(MVCCMultiversion Concurrency Control)解决了幻读的问题。
(4)Serializable 可串行化
     该级是最高的级别,通过强制事务串行执行,避免了幻读的问题,该级会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用的问题,
6、索引
MYSQL中索引文件以B树结构存储,索引可分为单列索引和多列索引。对于多列索引中,一个SQL语句是否用到了索引取决于其数据是否符合最左前缀原则。
MySQL只有对以下操作符才使用索引:<<==>>=BETWEENIN,以及某些时候的LIKE。可以在LIKE操作中使用索引的情形是指另一个操作数不是以通配符(%或者_)开头的情形。例如,“SELECT id FROM people WHERE firstname LIKE Li%;”这个查询将使用索引,但“SELECT id FROM people WHERE firstname LIKE %ike;”这个查询不会使用索引。

1 个回复

倒序浏览
干货 谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马