Mysql知识点

一、数据库

  • 关系型数据库(sql,外键约束)
    Mysql、SQLLite、SQLServer、Oracle

  • 菲关系型数据库(NoSql,键值对)
    Redis、MongDB

二、Mysql的存储引擎

Mysql是一个单进程多线程架构的数据库,Mysql数据库是咧在系统上表现为一个进程,它的数据表以文件的形式存在磁盘。

1、MYISAM存储引擎

在没有InnoDB存储引擎之前,Mysql默认使用MyIsam存储引擎。
1)不支持事务
2)数据表锁
3)没有外键约束
4)全文索引
5)表空间小

2、InnoDB存储引擎

1)第一个支持事务的
2)数据行锁
3)外键约束
4)全文索引、B+树索引、哈希索引
5)表空间大

MyISAM与InnoDB区别?
1、MyISAM节约空间及相应速度,InnoDB安全性高,因为有事务支持,适合多用户操作数据库。
2、delete完,重启数据库,InnoDB自增是从1开始的,MyISAM是继续上一个。这就是内存与文件的区别

B+树索引
二叉搜索树----平衡二叉搜索树(AVL)------B树-----B+树
B+树在数据库中分为聚集索引和辅助索引。
聚集索引:它根据每张表的主键构造一个B+树,叶子节点存放整表的行数据。B+树的索引是双向链表
辅助索引:根据每张表创建索引列构造一棵B+树。叶子节点并不包括记录的全部数据,只包括键值和书签

3、NDB存储引擎

4、Memory存储引擎

5、归档存储引擎

6、Federated存储引擎

7、Maria存储引擎

三、事务

A、C、I、 D
原子性:要么都成功,要么都失败
一致性:事务前后要保持一致
持久性:事务一旦提交,便持久化到数据库,不能修改
隔离性:多个用户操作同样的功能,互相不影响

四种隔离级别:
第一种:读未提交(脏读):一个事务读取了另一个事务未提交的数据。
第二种:读提交的(不可重复):在一个事务中读取表中某一行数据,多次读取结果不一样
第三种:重复读(幻读):一个事务读取到别的事务插入的数据,导致前后结果不一样
第四种:序列化:这是隔离级别中最高级的,可以避免脏读、不可重复读、幻读。耗性能,不建议使用。
Mysql默认幻读

四、JDBC与数据库连接池

在这里插入图片描述

由于一个应用程序可能需要和多个数据库建立连接,就需要加载多个数据库驱动,为了简化数据库操作,就加了JDBC。
问题: statement与PreparedStatement区别?

答:防止sql注入。

结:面试题

1.Mysql如何优化?

答:
sql语句中in包含的值不应过多。
seclet语句务必指明字段名称。
不使用ORDER BY

2.索引什么时候失效?
答:
查询条件有字符串,要有’'包起来
where语句中使用or
左外连接

3.(中国、地区、省份)如何建表?

答:?

4.mysql索引,abc三个数据,单取ac或者bc会不会命中索引?

答:A、C查询的时候虽然使用了索引,实际其实只用了A,而不是AC。B、C查询的时候并不会使用索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值