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.联合索引最左原则
标签:优化,数据库,使用,查询,学习,索引,mysql,整理,where From: https://www.cnblogs.com/wuqihe/p/18054772