![](https://img-blog.csdnimg.cn/57fa6ac5ce2e45f8925e8c952bd9f23e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 68
深入连接数据库
征途黯然.
Hold me hard and mellow.
展开
-
Navicat迁移局域网内其他PC机的MySQL数据库
查看局域网IP。原创 2024-01-10 14:00:43 · 4096 阅读 · 55 评论 -
【MySQL】全局锁、表级锁、行级锁
元数据锁是server层的锁,表级锁,每执行一条DML、DDL语句时都会申请MDL锁,DML操作需要MDL读锁,DDL操作需要MDL写锁(MDL加锁过程是系统自动控制,无法直接干预,读读共享,读写互斥,写写互斥),申请MDL锁的操作会形成一个队列,队列中写锁获取优先级高于读锁。但是,为了效率考量,MySQL做了优化,对于不满足条件的记录,会在判断后放锁,最终持有的,是满足条件的记录上的锁。· 意向排他锁(IX):事务打算给数据行加行排他锁,事务在给一个数据行加排他锁前必须先取得该表的 IX 锁。原创 2022-11-21 15:39:34 · 2906 阅读 · 0 评论 -
【MySQL】索引不会被使用的7种情况
子句中,如果索引列所对应的第一个字符由通配符开始,索引将不被采用,然而当通配符出现在字符串其他位置时,优化器就能利用索引。如果对索引字段进行函数、算数运算或其他表达式等操作,那么 MySQL也个便用索引。是一致的,所以,字符类型的字段值应该加上引号。条件中,字段类型为字符串,而其值为数值,那么。对于多列索引,若没有使用前导列,则。估计使用全表扫描要比使用索引快,那么。条件中的所有列都是索引列,否则。[5] 通配符是第一个字符。不会使用索引,这个规则和。[1] 隐式类型转换。[1] 隐式类型转换。原创 2022-10-26 19:05:36 · 4013 阅读 · 0 评论 -
【MySQL思考】触发器是否应该在生产环境中使用?
1] 触发器简单介绍[1] 触发器简单介绍MySQL 触发器trigger是一种存储程序,它和一个指定的表相关联,当该表中的数据发生变化(增加、更新、删除)时自动执行。这些修改数据行的操作被称为触发器事件,例如insert或者load data等插入数据的语句可以激活插入触发器。按照 SQL 标准,触发器可以分为行级触发器和语句级触发器。行级触发器对于修改的每一行数据都会激活一次,如果一个语句插入了 100 行数据,将会调用触发器 100 次;原创 2022-10-24 09:42:27 · 3128 阅读 · 0 评论 -
【名词解释与区分】聚集索引、非聚集索引、主键索引、唯一索引、普通索引、前缀索引、单列索引、组合索引、全文索引、覆盖索引
毕竟索引叶子节点存储了它们索引的数据;1、组合索引具有最左前缀原则,创建组合索引时,要考虑列的顺序,例如A,B两个字段都会在查询中用到,但A使用的频率更高,就将A作为组合索引的第一个字段,放在最左边。3、如果这张表也没有唯一非空索引,那么 InnoDB 内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个 6 个字节的列,该列的值会随着数据的插入自增。2、组合索引具有最左前缀原则,在写where查询时,如果一次使用组合索引的左侧列查询,组合索引有效,直接使用后几列查询,组合索引无效。原创 2022-10-16 20:15:32 · 4001 阅读 · 0 评论 -
【MySQL高级】查询缓存、合并表、分区表
[1] 查询缓存 MySQL的缓存机制简单地说就是缓存SQL语句和查询的结果,如果运行相同的SQL语句,服务器会直接从缓存中取到结果,而不需要再去解析和执行SQL语句。 查询缓存会存储最新数据,而不会返回过期数据。当数据被修改后,在查询缓存中的任何相关数据均被清除。 对于频繁更新的表,查询缓存是不适合的;而对于一些不经常改变数据且有大量相同SQL查询的表,查询缓存会提高很大的性能。 1.1 重要变量 输入以下命令进行查看:show variables like '%query_cach.原创 2022-01-18 20:07:02 · 768 阅读 · 0 评论 -
【开发思考】约束是在数据库中定义还是在业务层中实现?
反范式其实是基于范式所调整的,没有冗余的数据库未必是最好的数据库,完全按照范式做表的设计可能会降低查询效率(涉及多表查询,多表连接JOIN,临时表创建GROUP BY),有时候为了提高运行效率,就必须降低范式的标准,适量保留冗余数据。因为如果本来你眼中属于同一个库的多表操作和约束,底层实际却是跨库去操作的,甚至是跨物理机去操作的,那肯定性能就会经常莫名的下跌。外键影响数据库的插入速度。因为在数据库操作中,DQL的比例是要远大于DML的,反范式优化一定要适度,并且是在原本满足但范式的基础上做调整的。原创 2022-10-12 22:16:11 · 3017 阅读 · 0 评论 -
【MySQL命令】远程连接、数据库备份
[1] 远程连接命令 确保远程MySQL数据库可以连接:mysql -u {user} -h {host} -p 其中: user:用户名; host:主机ip地址; 示例: [2] 数据库备份命令2.1 备份单个数据库中的所有表:mysqldump -u {user} -h {host} -p {database} > {url} 其中: user:用户名; host:主机ip地址; database:数据库名; url:备份后文件的绝对路径;.原创 2022-01-18 17:43:48 · 2691 阅读 · 0 评论 -
【MySQL】MySQL的核心——存储引擎
存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。原创 2022-01-02 09:11:43 · 469 阅读 · 0 评论 -
【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
[1] 示例数据 用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接)。 a_table: b_table: [2] 内连接(取两表交集) 查询语句:select * from a_table a inner join b_table b on a.a_id = b.b_id; 查询结果: [3] 左连接(先查左边表所有数据,然后按on条件拼接) 查询.原创 2022-01-02 09:12:11 · 3665 阅读 · 1 评论