编辑
2024-10-14
新技术探索
0

基础概念

  1. LLM(大语言模型, Large Language Model):基于海量文本数据训练的深度学习模型,如GPT系列、BERT等,能够理解和生成自然语言文本,能够进行复杂对话、文本创作等任务。

  2. AGI(通用人工智能, Artificial General Intelligence):这是AI研究的理想目标,追求创造能像人类一样学习新技能、解决广泛问题的智能体,目前仍处于理论探索和初步实践阶段。

  3. AIGC (人工智能生成内容): 利用AI技术生成的各种内容,从文本、图像到视频,利用算法创造新颖、个性化的内容,如AI艺术画作或定制文章。

  4. Prompt(提示词):在模型中用于引导模型生成特定类型输出的上下文信息或指令,例如,告诉模型“写一篇科幻故事”。

  5. 提示工程(Prompt Engineering):设计和优化输入提示以获得所需模型输出的过程,涉及精心设计输入提示,以优化模型输出的准确性、创意或特定风格,是提高AI大模型响应质量的关键策略。

  6. 多模态(Multimodal):文本、图像、音频等都是一种模态,多模态指能够处理文本、图像、音频等多种类型数据的模型,实现对多模态信息的综合理解和分析。

编辑
2024-09-09
后端技术
0

1、建索引时,要建立区分度高的索引。区分度高的索引,可以快速得定位数据,区分度太低,无法有效的利用索引,可能需要扫描大量数据页,和不使用索引没什么差别。如果是组合索引,也尽量以区分度更高的排在前面。

2、联合索引注意最左匹配原则:按照从左到右的顺序匹配,MySQL会一直向右匹配索引直到遇到范围查询(>、<、between、like)然后停止匹配。

3、可能的话尽量只利用索引覆盖,可以减少回表操作,提升效率。

4、避免索引失效的原则:禁止对索引字段使用函数、运算符操作,会使索引失效。

5、避免非必要的类型转换,字符串字段使用数值进行比较的时候会导致索引无效。

6、模糊查询'%value%'会使索引无效,变为全表扫描,因为无法判断扫描的区间,但是'value%'是可以有效利用索引。

7、索引覆盖排序字段,这样可以减少排序步骤,提升查询效率

8、尽量的扩展索引,非必要不新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。

编辑
2024-09-03
后端技术
0

慢查询原因分析

慢查询日志

开启SlowLog,默认是关闭的,由参数slow_query_log决定,在MySQL命令终端中输入下面的命令:

sql
# 设置为开启,默认情况下是off set global slow_query_log=on; # 设置慢查询阈值,单位是 s,默认为10s,这边的意思是查询耗时超过0.5s,便会记录到慢查询日志里面 set global long_query_time=1; # 确定慢查询日志的文件名和路径 show global variables like 'slow_query_log_file'; #检查慢查询的详细指标 show global variables like '%quer%';

使用Explain进行查询语句分析

编辑
2024-09-02
后端技术
0

行锁(Record Lock):锁定单个行记录的锁,防止其他事务对此行进行update和delete。在RC、RR隔离级别下都支持。

间隙锁(Gap Lock):锁定索引记录间隙(不含该记录),确保索引记录间隙不变,防止其他事务在这个间隙进行insert,产生幻读。在RR隔离级别下都支持。

临键锁(Next-Key Lock):行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap。在RR隔离级别下支持。

编辑
2024-08-26
面试题库
0

Java中的线程锁机制包括偏向锁(Biased Locking)、轻量级锁(Lightweight Locking)和重量级锁(Heavyweight Locking)。这些锁机制是为了在多线程并发访问时保证数据的一致性和防止竞态条件而设计的。

偏向锁(Biased Locking)

偏向锁是为了在无竞争的情况下提高性能而设计的。当只有一个线程访问临界区,会将锁对象记录在当前线程的栈帧的锁记录中,并标记为偏向锁。

当另一个线程尝试获取偏向锁时,会检查原来的偏向锁是否已经被其他线程获取,如果没有,升级为轻量级锁;如果有,撤销偏向锁并尝试使用CAS(Compare And Swap)操作进行轻量级锁的升级。