mysql学习整理所有问题

mysql中的者则表达式(也算做是模糊查询)

使用//.来匹配有.的字符

 数字或者字母后边加上?表示数字或者字母可选还是不可选

 

 拼接字符串concat()

 

 文本处理函数

 

 同时指定两个列进行全文搜索(前提是这两个列必须增加索引)和against(“” in boolen mode)进行连用

 使用存储过程

 其中onumber入参,taxable入参,ototal出参

declare 声名参数

  处理数据库分页问题

 

 2.深层次理解数据库
也是基于tcpIP协议的,基于Unix的嵌套字文件
InnoDB数据库引擎

 

常数表达式

 

 

isNull是全表扫描所以需要优化

in和多个or是有区别,in中使用的是二分查找树发

关联查询优化器:
在多个表进行关联的时候,优化器会自动筛选出数据库的表进行二叉树的最优解

关系型数据库和非关系型数据库
为什么加对应的字段,因为要将读取出的数据并保存到内存中去(降低内存)
orm对象关系映射和类进行对应    
数据库语言分类
1.DDL数据库定义语言
2.数据库操纵语言
3.数据库控制语言
dual伪表
5.7版本Limit 0,20 跳过 0 条显示20
8.0 版本 Limit 20 offset 0

加密

自然链接和using链接 字段一致的时候使用

需要设置 

truncate table 的效率比delete效率快

mysql8.0 :的原子化的特性新增特性
计算列




全文检索

数据库性能优化:
索引的底层结构是通过B+树进行构建的,
1.聚簇索引

在我们添加主键的时候会自动生成索引,并且它的结构是:

二分查找法,在索引的页中会保存子页的页码以及主键对应的值
2.非聚簇索引

二分查找法,在索引的页中会保存子页的页码以及字段对应的值
3.复合索引

二分查找法,在索引的页中会保存子页的页码以及按顺序的字段对应的值

应用方式,不管是增删改查where条件后面的都要加上对应的索引

因为:sql是先执行 from 后 where的字敦 在修改和删除的时候可以看成是先查询,只要查询就要增加索引进行查询

在join的时候使用using和on后面链接的字段类型必须一致:因为如果不一致存在类型转换的话那么索引将会失效,失效是指where条件之后的索引失效

第一1000行数据时候不需要创建索引,有大量重复数据的时候不需要创建索引

避免对频繁更新的表创建过多的索引

避免用无序的值生成索引

不用的索引要删除掉

不要定义冗余的索引

查询数据所保存的所有的数据页:最后一次查询的开销

使用慢查询来优化数据库:

1.开启慢查询日志

此时状态为未开启

开启

查看日志参数:开启状态,开启文件

永久设置日志:修改配置

真正的优化,索引失效:

1.where 后面的字段是运算符

2.where后面有or的时候所有字段要都有索引

3.模糊查询以%开头

4.有比较运算符号

5.!=的情况下不能使用索引

6.is null 能使用索引,is not null 不能使用索引

7.联合索引最左原则

隔离级别:

1.读未提交

2.读已经提交

3.可重复读

4.串行化

脏读:在一个事务修改了但是未提交的情况下,另一个事务是能读取到数据的,此时事务1回滚导致事务2数据错误

不可重复读:事务1修改并提交之后,正在执行的事务2中两次结果不相同。

幻读:当事务1添加数据后,事务2查询出来的数据没有加1,但是再次添加相同id的数据的时候会提示主键重复问题

锁:在加锁的时候不能重复添加
1.共享锁和排他锁

读数据用共享锁,写数据用排他锁

2.表级锁,页级锁,行级锁

3.行级锁,间隙锁,临建锁

一般在数据库引擎为innerDB的时候我们通常使用行级锁

和共享排他用法基本一致,只不过是在表的基础上加上where条件

间隙锁:假如id为3,8之间加入5为任意一种锁,此时在4567中都不能可以再重复加锁,但是不能再执行DDL(增删该查)操作了

posted @   电器小君子  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示