随笔分类 -  Mysql

摘要:主查询的表称为外表,子查询的表称为内表。in 是把外表和内表作 hash 连接,而 exists 是对外表作 loop 循环,每次 loop 循环再对内表进行查询。in查询的子条件返回结果必须只有一个字段,exists就没有这个限制。内表小,用 in 效率较高;内表大,用 exists 效率较高;无 阅读全文
posted @ 2023-09-15 20:39 李若盛开 阅读(19) 评论(0) 推荐(0) 编辑
摘要:explain执行后返回id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra列。 1、id列id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按照select出现顺序增长的,MySQL将 阅读全文
posted @ 2023-09-14 18:41 李若盛开 阅读(781) 评论(0) 推荐(1) 编辑
摘要:单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。 组合索引:即一个索包含多个列。 怎么选择: 如果查询where条件只有一个,完全可以用单列索引,这样的查询速度较快,索引也比较瘦身。 如果业务场景是需要经常查询多个组合列,不要试图分别基于单个列建立多个单列索引(因为虽然 阅读全文
posted @ 2023-09-14 14:23 李若盛开 阅读(561) 评论(0) 推荐(0) 编辑
摘要:索引下推(index condition pushdown)简称ICP,在Mysql5.6版本上推出,用于优化查询。索引下推的下推其实就是指将部分上层(服务层)负责的事情,交给了下层(引擎层)去处理。 MySQL服务层负责SQL语法解析、生成执行计划等,并调用存储引擎层去执行数据的存储和检索。 其实 阅读全文
posted @ 2023-09-13 10:27 李若盛开 阅读(88) 评论(0) 推荐(0) 编辑
摘要:Mysql回表指的是在InnoDB存储引擎下,二级索引(非聚集索引)查询到的索引列,如果需要查找所有列的数据,则需要到主键索引(聚集索引)里面去取出数据。这个过程就称为回表。因为行的数据都是存在主键索引B+tree的叶子节点里面,二级索引的B+树叶子节点都是存放的索引列、主键。【在使用非聚簇索引查询 阅读全文
posted @ 2023-09-13 00:12 李若盛开 阅读(456) 评论(0) 推荐(0) 编辑
摘要:1、硬件和操作系统层面的优化 硬件:cpu、内存、磁盘io、网络带宽操作系统:Linux、Windows(mysql最初就是基于linux系统开发的,所以mysql在linux系统上的稳定性和性能普遍比在windows系统上高很多。)应用文件句柄(ulimit -a open files)网络配置 阅读全文
posted @ 2023-09-01 11:58 李若盛开 阅读(66) 评论(0) 推荐(0) 编辑
摘要:MySQL索引是提高查询效率的重要工具。其中,type ref索引是一种比较常见的索引类型。本文将介绍type ref索引的原理及优化方法,帮助更好地使用MySQL索引。 一、type ref索引的原理 type ref索引是一种基于非唯一索引的查找方式。当MySQL使用非唯一索引进行查询时,会返回 阅读全文
posted @ 2023-09-01 11:56 李若盛开 阅读(1026) 评论(0) 推荐(1) 编辑
摘要:使用First,Take,Last 进行单条查找,First根据主键正序,Last 根据主键倒序 Find查询结果是列表,First查询的是单条数据。 Raw 中文:原生的 作用:在写gorm语句时候用来写Raw sql语句(原生sql语句) 在使用Raw自定义SQL查询时,使用Scan来接收数据, 阅读全文
posted @ 2023-08-23 16:40 李若盛开 阅读(3295) 评论(0) 推荐(0) 编辑
摘要:1、bigint默认是有符号,即取值范围是正负范围 比如:bigint(20),就是-1234567890123456789~+1234567890123456789 2、bigint unsigned无符号,即取值范围就是正值范围 比如:bigint(20),就是+1234567890123456 阅读全文
posted @ 2023-08-14 12:06 李若盛开 阅读(4635) 评论(0) 推荐(0) 编辑
摘要:报错原因:值超出列的范围 可能原因: 原因1:值超出其可输入的范围。 解决方法: 1、把该字段INT类型修改为BIGINT,或者改成其他数据类型。 2、检查是否有符号 有符号数据类型表示该列可以存储正整数和负整数值。这是 MySQL 中大多数整数类型的默认类型。因此,除非明确指定,否则任何整数类型列 阅读全文
posted @ 2023-08-11 12:04 李若盛开 阅读(973) 评论(0) 推荐(0) 编辑
摘要:安全模式 在mysql中,如果在update和delete没有加上where条件,数据将会全部修改。不只是初识mysql的开发者会遇到这个问题,有经验的工程师难免也会忘记写入where条件。 为了避免失误造成的数据全部修改和删除,通过配置sql_safe_updates可开启mysql的安全模式。 阅读全文
posted @ 2023-07-29 16:56 李若盛开 阅读(721) 评论(0) 推荐(0) 编辑
摘要:报错原因:实际连接数超过了mysql 允许的最大连接数【默认连接数是151】,访问量过高,MySQL服务器抗不住。 查看当前最大连接数 show variables like '%max_connections%'; 解决办法:1、修改max_connections Windows环境下找到mysq 阅读全文
posted @ 2023-06-20 21:05 李若盛开 阅读(295) 评论(0) 推荐(0) 编辑
摘要:在同一台机器上运行两个 MySQL 服务是可行的,但需要注意以下几点: 确保端口号不冲突。每个 MySQL 服务都需要监听一个独立的端口,以便客户端可以连接到正确的服务。 配置文件的区分。每个 MySQL 实例需要有自己独立的配置文件,包括数据存储路径、日志文件路径等信息。 确保资源充足。运行多个 阅读全文
posted @ 2023-06-15 12:04 李若盛开 阅读(2652) 评论(0) 推荐(0) 编辑
摘要:场景:查询时报错 err {"error": "sql: Scan error on column index 0, name \"mobile\": converting NULL to string is unsupported"} 总结: 根据项目需要,在数据库查询时,可能需要对查询结果进行封 阅读全文
posted @ 2023-06-06 19:58 李若盛开 阅读(638) 评论(0) 推荐(0) 编辑
摘要:// 如果单个属性被更改了,更新它db.Model(&user).Update("name", "hello")//// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111; // 使用组合条件更新 阅读全文
posted @ 2023-04-23 21:06 李若盛开 阅读(223) 评论(0) 推荐(0) 编辑
摘要:一、记录:在用order by排序时,发现结果与“逻辑” 不符合!!! SELECT ch FROM `test` ORDER BY ch DESC //降序 二、猜想:以为是ASCII的原因? 三、验证:数字0到9的ASCII码值分别为48到57,所以排除此原因。 四、启发:通过查资料 order 阅读全文
posted @ 2023-04-21 12:55 李若盛开 阅读(317) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" ) type Product struct { gorm.Model Code string Price uint } func main() { dsn := "ro 阅读全文
posted @ 2023-04-17 16:13 李若盛开 阅读(18) 评论(0) 推荐(0) 编辑
摘要:1、新增持久化设置 MySQL8.0 新增 SET PERSIST 的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SET GLOBAL 命令只能临时生效的不足; 命令的使用: SET PERSIST max_ 阅读全文
posted @ 2022-08-23 20:38 李若盛开 阅读(2172) 评论(0) 推荐(0) 编辑
摘要:需求: 1、可以自定义每天什么时间来执行指令,进行备份数据库test到/home目录下(这个目录可以根据具体情况来自定义); 2、备份开始和备份结束能够给出相对应的提示信息; 3、备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如:2019-02-21.tar.gz; 4、在备 阅读全文
posted @ 2022-05-05 14:55 李若盛开 阅读(53) 评论(0) 推荐(0) 编辑
摘要:之前咱们学习过原生的Go连接MYSQL的方法,使用Go自带的"database/sql"数据库连接api,"github.com/go-sql-driver/mysql"MYSQL驱动,通过比较原生的写法去写sql和处理事务。目前开源界也有很多封装好的orm操作框架,帮我们简省一些重复的操作,提高代 阅读全文
posted @ 2022-04-30 19:49 李若盛开 阅读(1408) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示