mysql的存储引擎介绍
基于表的。
查看数据库支持的引擎:
查看支持的版本:
查看表的引擎:
查看所有表的存储引擎:
也可以修改默认引擎。
这有一张数据量庞大的表。
表是通过执行shell脚本快速创建的.
创建的表.
执行成功后会有个sql执行脚本文件:
这里会有100条数据。
那么我们怎么把脚本中的数据插入到表中呢?
1.创建库,创建表:
这个字段不对,删除表重新创建:
进行插数操作:source /home/dazhu/sql.txt
介绍普通索引与唯一索引
普通索引用mul表示。
直接创建索引:
我们会发现查询的速度已经加快了,但是不是特别明显。
因为数据量不是特别大。
mysql必备核心知识之主键索引
mysql核心知识之全文索引的使用
创建表:
插入数据:
我们再给表添加一个全文索引:
使用全文索引查出包含lines的行:
如果我们不使用全文索引一般是使用like:
使用全文索引:
select * from 表名 where match (字段名) against ('检索内容');
select * from command where match(instruction) against ('sections');
因为数据量实在太小了,体现不出来全文索引的优势。
我们用数据量比较大的表来看看全文索引的查询速度之快:
模糊查询花了0.45秒。
使用全文索引只花了0.01秒,效率快了很多。
这里有个知识点,这里是以一个词,一个词为单位的:
搜素不到。
停止词,一般指的出现频率比较高的,这种使用全文索引也是查不到的。
匹配度查看:
匹配度高的会优先显示出来。
查询的时候先后顺序也会根据匹配度来展示前后的顺序。
这个相当于模糊搜索。
+号表示一定要出现的意思。
如果没有+号表示可以出现也可以不出现。
-号表示一定不能出现。
删除全文索引:
全文检索是忽略大小写的。
我们的mysql版本是5.7
我们看看InnoDB它支不支持全文索引:
我们发现可以使用了。
我们发现它并不支持中文的全文索引搜索。
mysql核心知识之外键约束剖析
我们用这两个表来演示外键关系。
添加一条数据:
我们测试一下在部门表插入一个数据:
我们现在把表改为MyISAM引擎:
我们要先删除外键约束:
使用show create table可以查看到使用的索引名称。
创建了外键。
插入一条数据:
我们添加了一条记录,发现也能添加无部门关联的数据,外键没有起到作用。
mysql核心知识之联合索引
创建三个索引:
explain可以查出我们是用哪些字段作为索引。
如果是用单个索引,mysql会自己检索使用哪个索引是最有效率的。
创建组合索引: