
MySQL
文章平均质量分 80
走慢一点点
这个作者很懒,什么都没留下…
展开
-
Docker 部署 MySQL 5.7 的陷阱:UID/GID 冲突的解决方案
最近在做AI大模型相关的项目,项目中因为要和大模型服务通信,涉及到的样本信息非常多,导致报文非常大,在写HTTP日志时,MySQL会报错,因为MySQL默认的最大报文长度(max_allowed_packet)是4M,如果请求的报文超过4M,会报错,如“Row size too large. The maximum row size for the used table type”。如果还没有创建 mysql 用户和用户组,可以创建并指定 UID 和 GID 与容器内的相同:。原创 2024-08-10 23:35:23 · 955 阅读 · 0 评论 -
MySQL高级 之 事务(ACID特性 与 隔离级别)
什么是事务?事务就是DBMS当中用户程序的任何一次执行,事务是DBMS能看到的基本修改单元。事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性。即原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。MySQL事务实现机制MySQL提供了两种事务型的存储引擎:InnoDB和NDB Cluster(主要用原创 2017-06-21 16:04:12 · 2774 阅读 · 0 评论 -
MySQL主从复制原理及基本配置
原理mysql主(称master)从(称slave)复制的原理:1、 master将数据改变记录到二进制日志(Binary log)中,即my.ini配置文件中log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)2、 slave将master的binary log events拷贝到它的中继日志(relay log)3、 slave重做中继日志中的事件,将原创 2017-02-17 17:07:22 · 998 阅读 · 0 评论 -
MySQL高级 之 查询日志分析
慢查询日志MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中相应时间超过阈值得语句,具体指运行时间超过long_query_time的SQL,则会被记录到慢查询日志中。默认情况下: 1、long_query_time的值为10,即运行10秒以上的语句。 2、MySQL没有开启慢查询日志,需要我们手动来设置这个值。当然,如果不是调优需要的话,一般不建议开启,因为慢查询日原创 2017-06-16 17:46:45 · 2976 阅读 · 0 评论 -
MySQL高级 之 锁
MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行原创 2017-06-19 18:46:45 · 801 阅读 · 0 评论 -
MySQL高级 之 in和exists
in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环一次对内表进行一次查询。 如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;表A(小表),表B(大表)注意: A表与B表的id字段应建立索引select * from A where id in (select id fr原创 2017-05-19 17:24:13 · 1080 阅读 · 0 评论 -
MySQL高级 之 索引面试题分析
索引优化简单案例单表需求:查询category_id为1 且 comments大于1 的情况下,views最多的id 1、无索引的情况下: 很显然,type是ALL,即最坏的情况,Extra还出现了Using filesort也是最坏的情况,必须优化2、优化一:where条件全部建索引 复合索引中的使用到的“comments > 1”是一个范围检索,带来的好处是将type提升为range,原创 2017-05-16 11:33:15 · 18851 阅读 · 2 评论 -
MySQL高级 之 索引失效与优化详解
案例所用的表结构、索引、与数据如下: 索引失效与优化1、全值匹配我最爱2、最佳左前缀法则(带头索引不能死,中间索引不能断)如果索引了多个列,要遵守最佳左前缀法则。指的是查询从索引的最左前列开始 并且 不跳过索引中的列。 正确的示例参考上图。错误的示例: 带头索引死: 中间索引断(带头索引生效,其他索引失效): 3、不要在索引上做任何操作(计算、函数、自动/手动类型转换),不然会导致索引原创 2017-05-16 18:40:27 · 39744 阅读 · 20 评论 -
MySQL高级 之 explain执行计划详解
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra各字段详解idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:原创 2017-05-09 22:55:10 · 85903 阅读 · 26 评论 -
MySQL高级 之 order by、group by 优化
order by示例示例数据: Case 1 Case 2 Case 3 Case 4 结论:order by子句,尽量使用Index方式排序,在索引列上遵循索引的最佳左前缀原则。 复合(联合)索引形如 key (‘A1’,’A2’,’A3’ ),排序的思路一般是,先按照A1来排序,A1相同,然后按照A2排序,以此类推,这样对于(A1),(A1,A2), (A1,A2,A3)的索引都是有原创 2017-05-22 17:57:14 · 33776 阅读 · 5 评论 -
MySQL索引介绍
什么是索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。由此可得到索引的本质是一种数据结构。简单理解为:排好序的快速查找数据结构一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。我们平常所说的索引,如果没有特别指明,一般都是指B树结构组织的索引(B+树索引)。B+树索引检索原理 优缺点优点:1、类似图书馆书目索引原创 2017-05-02 23:15:17 · 941 阅读 · 1 评论 -
MySQL逻辑架构、SQL加载执行顺序、七种JOIN模式图解
逻辑架构 存储引擎查看当前安装的mysql提供的存储引擎查看当前mysql默认的存储引擎MyISAM和InnoDBSQL加载执行顺序sql书写顺序mysql解析器执行的顺序 考点:mysql是从from开始解析的七种JOIN模型详解原创 2017-05-02 21:45:04 · 2958 阅读 · 1 评论 -
Linux——MySQL安装、配置
安装前准备下载地址mysql官网地址:https://dev.mysql.com/downloads/mysql/#downloads检查当前系统是否安装过MySQL[root@localhost opt]# rpm -qa|grep -i mysqlmysql-libs-5.1.73-3.el6_5.i686执行上面命令发现系统自带了一个mysql-libs包,需要卸载之。 通过 rpm -e原创 2017-04-27 23:48:09 · 1276 阅读 · 1 评论 -
使用Spring基于应用层实现读写分离
背景我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案, 其中一个是主库,负责写入数据,我们称之为:写库; 其它都是从库,负责读取数据,我们称之为:读库;那么,对我们的要求是: 1、 读库和写库的数据一致; 2、 写数据必须写到写库; 3、 读数据必须到读库;方案解决读写分离的方案有两种:应用层解决和中间件解决。应用层解转载 2017-02-17 18:09:20 · 5915 阅读 · 6 评论