mysql
文章平均质量分 56
knowledge are power
这个作者很懒,什么都没留下…
展开
-
select 执行流程
Mysql 逻辑架构流程客户端与服务建立连接。进行账户,密码,权限验证。查询缓存中查询是否执行过当前select语句。如果之前执行过相应的select语句,则执行过的select语句和查询结果会以key-value的形式存放在查询缓存中,其中,key是查询语句,value是查询的结果数据,查询缓存中没有找到相应的数据,则会继续执行后续的查询阶段。分析器主要是对select语句进行 词法分析和语法分析 操作。select语句中如果使用了多个索引,则优化器会决定使用哪个索引来查询数据;再比如,在原创 2022-02-15 17:28:00 · 467 阅读 · 0 评论 -
Mysql 数据库字段详解
数字型字符类型枚举集合时间类型有无符号设置–(存在符号)create table user{user_id int unsigned……}int(4)和int(11)的区别–int(m)m表示显示宽度(例如,INT(4))。不足位从左按0补齐补齐关键字zerofillalter table test modify id2 int(12) zerofill;(如果int中不加具体的数值,则默认是10)...原创 2022-02-11 09:19:16 · 332 阅读 · 0 评论 -
mysql数据库表
数据库命名规范所有数据库对象名称必须使用小写字母并使用下划线分割所有数据库对象名称禁止使用mysql保留关键字命名符合见名知意原则,且最好不要超过32个字符临时表以tmp_为前缀并以日期为后缀,备份表以bak_为前缀并以日期为后缀需要关联的列类型必须一致,如果不一致在关联查询时会自动进行数据类型隐式转换,造成列上的索引失效数据库基本设计规范所有表必须使用Innodb存储引擎,Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好数据库和表的字符集统一使用UTF8所有表和字原创 2022-01-25 13:11:32 · 165 阅读 · 0 评论 -
mysql索引(图文并茂)
索引本质索引本身是一种数据结构,存放着每条数据在磁盘上对应的地址数据结构1:数组需要进行扩容,插入慢,查找快2:单向链表由多个节点组成,每个节点存储数据和下个节点的地址,插入快,查找慢,增加数据不需要扩容,修改节点的指针域即可3:双向链表解决单向链表只能向前不能向后的问题,由多个节点组成。每个节点存储数据以及上个节点,下个节点的指针4:二叉树如果插入元素是有序的二叉树会退化成链表(斜树)5:平衡二叉树(AVL)每个节点存放节点元素,左下节点指针,右下节点指针,通过左旋右旋控制树的平衡原创 2020-09-10 23:10:52 · 422 阅读 · 0 评论 -
Mysql底层分析
MyISAm(堆表)InnoDB(聚集)本质为B+树,只在子节点存放数据目录页:页指针 + 此页最小的主键Id页目录:存放行数据对索引的识别次序:主键索引--》唯一索引--》InnoDB自建默认索引数据存放: 叶子节点--》只存放数据 非叶子节点 --》可以存储多个节点数据 ...原创 2021-11-01 23:31:01 · 127 阅读 · 0 评论 -
线程死锁问题
Java 程序使用 jstack 命令进行查看Mysql查询是否锁表 show open TABLES where IN_USE >0;查询进程show processlist;查询正在锁的事务select * from INFORMATION_SCHEMA.INNODB_LOCKS;查询等待锁的事务select * from INFORMATION_SCHEMA.INNODB_LOCK_WAITS;...原创 2021-12-04 23:02:57 · 205 阅读 · 0 评论 -
mysql语句中cast实现类型转换
CAST(expr AS type) 可用作mysql 查询时结果的类型转换,参数意思为CAST(待转换的数据 AS 期望转换的目标类型)sql 可转换的数据类型列表:数据库类型类型说明DATETIME年月日,时分秒DATE年月日TIME时分秒SIGNED整形CHAR字符串DECIMAL(a,b)小数,可精确位数1:DATETIME–>字符串转具体时间SELECT CAST('2019-08-29 16:50:21' as DA原创 2020-08-30 00:47:27 · 749 阅读 · 0 评论 -
Mysql主从复制
项目调用流程Mysql 读写分离,主从复制slave 从库会开启两个线程:I/OThread SqlThreadI/OThread: 将master主库的binlog文件读到从库 SqlThread: 读取binlog文件的内容,将对应的sql执行到从库Mysql 读写分离,主从复制的实现基于数据库代理,会产生一个虚拟库,由虚拟库去区分请求读写的类别,从而将请求发到不同的Mysql优点:对业务逻辑没有侵入缺点:因为虚拟库的存在,会造成IO加倍基于业务层去处理,通过对Sql请求原创 2021-11-02 23:05:19 · 1343 阅读 · 0 评论 -
MySQL慢查询日志全解
概念MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。参原创 2021-12-29 22:16:56 · 478 阅读 · 0 评论