1、find和grep的区别
find查找文件(递归),grep匹配条件的行(正则)
2、数据保存在内存,文件和数据库的区别
内存 | 文件 | 数据库 |
不能永久保存 | 永久保存 | 永久保存 |
读取速度快 | 不断访问IO口进行读取 | 效率高,方便管理 |
3、数据库三大范式
原子性,存储的数据应该具有“不可再分性”
唯一性,非主键完全依赖于主键,而不是主键的一部分
独立性(非主键值不依赖于另一个非主键值
4、mysql数据类型
整数,小数,文本,日期,二进制,字符串
5、mysql的innodb和myisam引擎的区别(都使用B+)
innodb和myisam的索引都是基于b+树,但他们具体实现不一样,innodb的b+树的叶子节点是存放数据的,myisam的b+树的叶子节点是存放指针的
mysql默认使用innodb,如果要用事务和外键就使用innodb,如果这张表只用来查询,可以用myisam。如果更新删除增加频繁就使用innodb
6、什么是索引
一个文件,相当于目录,为了方便查找,通常使用B-tree结构,需要占用物理空间
7、索引的优缺点
优点:加快数据检索速度,提高性能;
缺点:时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率。空间方面:索引需要占物理空间。
8、索引类型
主键:数据列不为空,不重复,一个表只有一个
唯一:数据列可为空,不重复,多个列都可以创建唯一索引
普通:基本类型
全文
9、索引基本原理
无序变有序:创建索引列的内容排序,在倒排表上拼接数据地址连,索引时,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据
10.索引算法
B+(.聚簇索引和非聚簇),Hash(效率高,等值查找)
B树和B+树的区别:B树内部节点可以放值(将频繁访问的数据放在靠近根节点的地方可以提高查询效率),叶子节点各自独立;B+树内部节点全是键(有利于全数据遍历,缩小查找范围),叶子节点有链相连
11.索引原则
基数小的类不用索引,不要过度索引(占用磁盘空间)
12.创建索引的原则
较频繁更新的,不能有效区分的,重复值较多的不适合创建索引
较频繁作为查询条件的,有外键的适合创建索引
13.创建索引的三种方式
第一种方式:在执行CREATE TABLE时创建索引第二种方式:使用ALTER TABLE命令去增加索引,
14.删除索引
根据索引名删除普通索引、唯一索引、全文索引:alter table表名drop KEY 索引名
15.前缀索引
通过取字段前几个字符创建索引,我们可以利用
select count(*)/count(distinctleft(password,prefixLen));,通过从调整prefixLen的值(从1自增)查看不同前缀长度的一个平均匹配度,接近1时就可以了(表示一个密码的前prefixLen个字符几乎能确定唯一一条记录)
16.最左前缀匹配原则,
非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、 between.like)就停止匹配。根据业务需求, where子句中使用最频繁的一列放在最左边。
17.聚簇索引和非聚簇 聚簇索引 和 非聚簇索引详解_聚簇索引和非聚簇索引-CSDN博客
.聚簇:数据和索引放一起:InnoDB引擎的表要求必须有聚簇索引一般为主键索引,没有即表中第一个非空唯一的列作为聚簇索引
.非聚簇:数据和索引不放一起 逻辑结构在一起 物理结构不在一起 myisami
18 事物
不可分割的数据库操作序列,原子性 一致性 隔离性(一个事物不被其他事物干扰) 持久性
19 事物隔离级别
脏读,幻读 ,不可重复读——读未提交
幻读 ,不可重复读——读已提交
幻读--可重复读
可串行化
20.数据库
(Database)是按照数据结构来组织、存储和管理数据的仓库
21.表的连接方式
左(左表全部显示),内(交集),右,全union(并集) /union all(全部,重复的也要)
22.提高查询效率 五大SQL优化技巧,助你轻松提升数据库查询效率-CSDN博客
避免使用select*,适当使用索引,批量代替逐行,使用EXISTS替代IN,jion代替子查询
23.数据库实现分页
24. 锁的类别
共享(读),排他(写)
25.数据库怎么使用
数据结果检查,测试数据准备,性能测试造大量数据(用到存储过程)开始-变量定义-循环-造数据-停止循环-结束