自学教程在这
基本上一周左右就能比较熟练的使用了,但如果要精通各种使用场景,那估计的一两年。
[1.解释MySQL外连接、内连接与自连接的区别]
先说什么是交叉连接: 交叉连接又叫笛卡尔积,它是指不使用任何条件,直接将一个表的所有记录和另一个表中的所有记录一一匹配。
内连接则是只有条件的交叉连接,根据某个条件筛选出符合条件的记录,不符合条件的记录不会出现在结果集中,即内连接只连接匹配的行。 外连接 其结果集中不仅包含符合连接条件的行,而且还会包括左表、右表或两个表中 的所有数据行,这三种情况依次称之为左外连接,右外连接,和全外连接。
左外连接,也称左连接,左表为主表,左表中的所有记录都会出现在结果集中,对于那些在右表中并没有匹配的记录,仍然要显示,右边对应的那些字段值以NULL来填充。右外连接,也 称右连接,右表为主表,右表中的所有记录都会出现在结果集中。左连接和右连接可以互换, MySQL目前还不支持全外连接。
2.Mysql如何优化DISTINCT?
DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。
3.自增主键最大ID记录,MyISAM和InnoDB分别是如何存储的
MyISAM表把自增主键的最大ID记录到数据文件里InnoDB表把自增主键的最大ID记录到内存中
4.MySQL主从复制原理流程
主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog 中;从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己 的relay log中;从:sql执行线程——执行relay log中的语句;
5.delete、truncate、drop区别
truncate和delete只删除数据,不删除表结构 ,drop删除表结构,并且释放所占的空间。删除数据的速度,drop> truncate > delete delete属于DML语言,需要事务管理,commit之后才能生效。drop和truncate属于 DDL语言,操作立刻生效,不可回滚。使用场合: 当你不再需要该表时, 用 drop; 当你 仍要保留该表,但要删除所有记录时, 用 truncate; 当你要删除部分记录时(always with a where clause), 用 delete。
6.key和index的区别
8.行级锁定的缺点
9.行级锁定的优点
1、当在许多线程中访问不同的行时只存在少量锁定冲突。
2、回滚时只有少量的更改
3、可以长时间锁定单一的行。
10.在MVCC并发控制中,读操作可以分成哪几类?
key 是数据库的物理结构,它包含两层意义和作用,一是约束(偏重于约束和规范数据 库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中 的innodb表空间)以一个类似目录的结构存储。索引要分类的话,分为前缀索引、全文 本索引等;7.MySQL优化开启查询缓存,优化查询explain你的select查询,这可以帮你分析你的查询语句或是表结构的性能瓶颈。 EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索 和排序的当只要一行数据时使用limit 1,MySQL数据库引擎会在找到一条数据后停止搜索,而不 是继续往后查少下一条符合记录的数据为搜索字段建索引使用 ENUM 而不是 VARCHAR。如果你有一个字段,比如“性别”,“国家”,“民族”, “状态”或“部门”,你知道这些字段的取值是有限而且固定的,那么,你应该使用 ENUM 而不是VARCHARPrepared StatementsPrepared Statements很像存储过程,是一种运行在后台的SQL 语句集合,我们可以从使用 prepared statements 获得很多好处,无论是性能问题还是 安全问题。Prepared Statements 可以检查一些你绑定好的变量,这样可以保护你的程序不会受到 “SQL注入式”攻击垂直分表选择正确的存储引擎比页级或表级锁定占用更多的内存。当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定 明显慢很多。用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁 成本小于行级锁定。快照读 (snapshot read):读取的是记录的可见版本 (有可能是历史版本),不用加锁 (共享读锁s锁也不加,所以不会阻塞其他事务的写)当前读 (current read):读取的是记录的最新版本,并且,当前读返回的记录,都会加 上锁,保证其他事务不会再并发修改这条记录