您的位置:首页 > 科技 > 能源 > 在线二维码制作生成器_网页版传奇制作教程_重庆百度seo_百度推广方案

在线二维码制作生成器_网页版传奇制作教程_重庆百度seo_百度推广方案

2025/1/6 17:13:02 来源:https://blog.csdn.net/a1275302036/article/details/143617948  浏览:    关键词:在线二维码制作生成器_网页版传奇制作教程_重庆百度seo_百度推广方案
在线二维码制作生成器_网页版传奇制作教程_重庆百度seo_百度推广方案

文章目录

    • MySQL索引命名规范、索引使用规范
    • SpringBoot使用@Lazy解决循环依赖问题
    • SpringBoot循环依赖的6种解决方案
    • Nginx超时时间设置
    • Linux统计当前文件夹下的文件个数、目录个数
    • Linux查看内存使用情况命令
    • Git更换远程仓库地址
    • TPS、QPS、RT、吞吐量、最佳线程数量的理解
    • MySQL多表联合更新
    • Spring和mybatis中@Param注解的区别
    • Spring jedis集群配置
    • MySQL存储过程学习
      • 游标
      • 条件处理程序
    • MySQL存储函数和存储过程的区别
    • MySQL查询数据库表的所有字段并用逗号分隔
    • Mybatis查询数据为null时,返回情况总结

MySQL索引命名规范、索引使用规范

索引命名规范:

  • 索引名必须全部使用小写。
  • 非唯一索引按照“idx_字段名称[_字段名称]”进用行命名。例如idx_age_name。
  • 唯一索引按照“uniq_字段名称[_字段名称]”进用行命名。例如uniq_age_name。
  • 组合索引建议包含所有字段名,过长的字段名可以采用缩写形式。例如idx_age_name_add。

索引使用规范:

  • 单张表中索引数量不超过5个。
  • 单个索引中的字段数不超过5个。
  • 表必须有主键,推荐使用UNSIGNED自增列作为主键。
  • 唯一键由3个以下字段组成,并且字段都是(整)(形)(时),可使用唯一键作为主键。其他情况下,建议使用自增列或发号器作主键。
  • 联表查询时,JOIN列的数据类型必须相同,关联字段要建立索引。
  • 不在低基数列上建立索引,例如“性别”。
  • 选择区分度大的列建立索引。组合索引中,区分度大的字段放在最前。
  • 对字符串使用前缀索引,前缀索引长度不超过8个字符。
  • 不对过长的VARCHAR字段建立索引。建议优先考虑前缀索引,或添加CRC32或MD5伪列并建立索引。
  • 合理创建联合索引,(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c)。
  • 合理使用覆盖索引减少磁盘IO,避免文件系统排序。
  • 禁止冗余索引。
  • 禁止重复索引。
  • 禁止使用外键。

参考链接

SpringBoot使用@Lazy解决循环依赖问题

@Lazy注解可以用于延迟初始化Bean,从而避免循环依赖。当一个Bean被标记为@Lazy时,它将在第一次使用时才被初始化。

示例代码如下:

@Component
public class A {@Autowired@Lazyprivate B b;
}@Component
public class B {@Autowiredprivate A a;
}

SpringBoot循环依赖的6种解决方案

参考链接

Nginx超时时间设置

1、send_timeout?
发送数据至客户端超时, 默认60s, 如果连续的60s内客户端没有收到1个字节, 连接关闭
2、proxy_connect_timeout
Nginx与upstream server的连接超时时间
3、proxy_read_timeout
Nginx接收upstream server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭
4、proxy_send_timeout
Nginx发送数据至upstream server超时, 默认60s, 如果连续的60s内没有发送1个字节, 连接关闭

在这里插入图片描述

这几个配置放在location、server、http都可以,Nginx会取最小值。
windows环境超时时间配置无效,原因未知

参考链接、参考链接

Linux统计当前文件夹下的文件个数、目录个数

// 统计当前文件夹下文件的个数,不包括子文件夹里的
ls -l |grep "^-"|wc -l
// 统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
// 统计当前文件夹下目录(子文件夹)的个数,不包括子文件夹里的
ls -l |grep "^d"|wc -l
// 统计文件夹下目录(子文件夹)的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l

说明:
ls -l :
长列表输出当前文件夹下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等);
grep “^-” :
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l :
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

Linux查看内存使用情况命令

1、free -h
2、cat /proc/meminfo
3、top

参考链接

Git更换远程仓库地址

参考链接

TPS、QPS、RT、吞吐量、最佳线程数量的理解

性能指标:QPS、TPS、系统吞吐量理解、两分钟读懂什么是TPS和QPS

MySQL多表联合更新

示例:

update jx_org_sequence_grade g, sys_org_tbl o
set  g.org_id = o.id 
where g.org_name = o.name;

参考链接

Spring和mybatis中@Param注解的区别

参考链接

Spring jedis集群配置

配置文件:

# reids配置
spring.redis:prefix: cxhl-devcluster:nodes: 10.12.12.222:6379,10.12.12.222:6380,10.12.12.222:6381 #集群节点password: ENC(BTYyu7j+9vA+v+0lEL388NGzQvU1J8I/)     #密码username: defaultjedis:pool:max-active: 10  #连接池最大连接数max-idle: 8     #连接池中最大空闲连接数min-idle: 0    #连接池中最小空闲数timeout: 5000      #访问超时时间

配置类:

/*** Redis缓存配置类**/
@Configuration
@EnableCaching
@Slf4j
public class RedisConfig extends CachingConfigurerSupport {@Value("${spring.redis.cluster.nodes}")private Set<String> nodeSet;@Value("${spring.redis.password}")private String password;@Value("${spring.redis.timeout}")private int timeout;@Value("${spring.redis.jedis.pool.max-active}")private int maxActive;@Value("${spring.redis.jedis.pool.max-idle}")private int maxIdle;@Value("${spring.redis.jedis.pool.min-idle}")private int minIdle;@Beanpublic JedisCluster redisCluster() {// 设置redis集群的节点信息Set<HostAndPort> nodes =nodeSet.stream().map(node -> {String[] nodeInfo = node.split(":");if (nodeInfo.length == 2) {return new HostAndPort(nodeInfo[0], Integer.parseInt(nodeInfo[1]));} else {return new HostAndPort(nodeInfo[0], 6379);}}).collect(Collectors.toSet());// 配置连接池JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxTotal(maxActive);jedisPoolConfig.setMaxIdle(maxIdle);jedisPoolConfig.setMinIdle(minIdle);// 创建jediscluster,传入节点列表和连接池配置JedisCluster cluster = new JedisCluster(nodes,timeout,timeout,3, password,jedisPoolConfig);log.info("RedisConfig 集群信息:{}",cluster);return cluster;}
}

MySQL存储过程学习

游标

  • 局部变量定义要在游标之前
declare uname varchar(100);
declare upro varchar(100);
declare u_cursor cursor for select name,profession from tb_user where age <= uage;
  • 把游标中获取到的值赋值给变量
fetch u_cursor into uname,upro;

条件处理程序

语法:
在这里插入图片描述

示例:

-- 声明条件处理程序 : 当SQL语句执行抛出的状态码为02000时,将关闭游标u_cursor,并退出
declare exit handler for SQLSTATE '02000' close u_cursor;

MySQL存储函数和存储过程的区别

  • 存储函数的输入参数只能是in
  • 存储函数必须有返回值,所以使用很少
  • 存储函数能做的,存储过程都可以做

参考:黑马程序的MySQL-进阶篇.pdf

MySQL查询数据库表的所有字段并用逗号分隔

-- 按ordinal_position 字段排序
select group_concat(column_name order by ordinal_position asc)
from information_schema.columns
where table_schema ='数据库' and  table_name = '表名';

group_concat函数语法:
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )
默认就是’,'号分割。

Mybatis查询数据为null时,返回情况总结

  • 返回类型为集合类型,返回一个空集合(大小为0,非null),避免空指针异常
  • 返回类型为基本类型(int、long),会抛空指针异常。
  • -返回类型为基本类型的包装类型(Integer、Long),返回null

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com