Chuenhung的个人网站

chuenhung.github.io

Mysql给查询记录增加序列号

使用变量

示例:

1
2
3
SET @row_number := 0;
SELECT (@row_number:=@row_number + 1) AS serial_number, t.*
FROM (SELECT * FROM your_table) AS t;

使用使用ROW_NUMBER() OVER()窗口函数

需要MySQL版本8.0以上
示例:

1
2
SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS serial_number, *
FROM your_table;

在这个查询中,ROW_NUMBER()函数根据some_column列的排序来为每行生成一个序列号。

阅读全文 »

问题现象(一)

Spring Cloud Alibaba Nacos 2022.X 可以使用extension-configs属性读取多个nacos配置文件,配置示例文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
spring:
application:
name: groupinnovation

spring.cloud.nacos:
config:
username: test
password: xxx
server-addr: 127.0.0.1:8848
namespace: ${nacos.namespace:dev} # 可以读取环境变量配置
group: DEFAULT_GROUP
enabled: true # 默认为true,可以不配
refresh-enabled: true # 默认为true,可以不配
fileExtension: yml
extension-configs:
- data-id: groupinnovation-database.yml
group: ${spring.cloud.nacos.config.group}
refresh: true
- data-id: groupinnovation.yml # 默认会读取(应用名一致的配置文件),手动配置方便维护
group: ${spring.cloud.nacos.config.group}
refresh: true

但是在2023.X版本中配置extension-configs属性会报错(启动项目也读取不到配置文件),如下图所示:

阅读全文 »

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,避免文件系统排序。
  • 禁止冗余索引。
  • 禁止重复索引。
  • 禁止使用外键。
阅读全文 »
0%