随笔分类 - mysql
摘要:update `badges` set `cat_point` = CASE WHEN level >= 1 THEN POW(2, `level` - 1) ELSE 0 END where name not like '%Steam%'; if level >=1 : cat_point = P
阅读全文
摘要:MySQL索引详解:一二级索引的区别与选择方法 索引是数据库中非常重要的一部分,可以提高查询速度,优化查询效率,降低系统负载。MySQL中的索引分为一级索引和二级索引,本文将详细解释它们的区别和如何选择正确的索引。 一级索引 一级索引也称为聚集索引,是MySQL表格中的默认索引。它的最大特点是能够快
阅读全文
摘要:概述: Update和Insert是锁表还是锁行,会影响到程序中并发程序的设计。 总结: (1)Update时,where中的过滤条件列,如果用索引,锁行,无法用索引,锁表。按照索引规则,如果能使用索引,锁行,不能使用索引,锁表。 (2)Insert时,可以并发执行,之间并不会相互影响。 一、Upd
阅读全文
摘要:当在MySQL中需要实现从scheduler_task表中选择一个status='todo'的任务,并将其状态设置为"ongoing"和worker_id设置为"1",同时确保线程安全并返回该任务的信息时,我们需要使用行级锁来实现。 介绍 在多线程环境下,当多个线程同时执行数据库操作时,可能会出现并
阅读全文
摘要:1. 遇到问题: 在clickhouse,我有一个web3_data表,大概36w条记录,以下查询的数据会变: select * from ( SELECT space_id, user_address, attr_name, attr_value FROM web3_data LIMIT 6550
阅读全文
摘要:当使用 MySQL 进行查询时,可以使用 CASE 表达式来根据条件对结果进行分支处理。CASE 表达式在 SELECT 语句中非常有用,可以根据不同的条件返回不同的值。在本文中,我们将介绍如何使用 CASE 表达式进行条件分支查询。 假设我们有一个名为 transactions 的表,其中包含以下
阅读全文
摘要:背景是查询一个有N亿条记录的mysql表 使用go多协程同时查询一个区间的不同数据代码: func txHashesWorker(id int, tasks <-chan Task, results chan<- int, wg *sync.WaitGroup) { defer wg.Done()
阅读全文
摘要:insert or update使用事务和不使用事务的核心差异 这样一个语句,在go多协程情况下,采用事务和不采用事务出现的问题: INSERT INTO web3_data (space_id, user_address, attr_name, attr_value) VALUES (198, '
阅读全文
摘要:引言:在处理大数据量的MySQL查询时,优化查询性能是至关重要的。当数据量达到上亿级别时,选择合适的查询条件和方法可以显著影响查询效率和响应时间。本篇博客将重点探讨范围条件查询和限制结果集的两种常见查询方式,并比较它们在大数据场景下的性能差异。 范围条件查询:范围条件查询是一种基于指定范围条件的数据
阅读全文
摘要:原始数据库表如下: CREATE TABLE `events` ( `id`int(11) unsigned NOT NULL AUTO_INCREMENT, `status` enum('on','off') COLLATE utf8_unicode_ci NOT NULL COMMENT '开关
阅读全文
摘要:这里涉及SQL语句的语法顺序和执行顺序了,我们常见的SQL语法顺序如下: SELECT DISTINCT <Top Num> <select list> FROM [left_table] <join_type> JOIN <right_table> ON <join_condition> WHER
阅读全文
摘要:目录结构: 软删除 在 GORM 中使用软删除 删除已经被标记为已删除的记录 硬删除 在 GORM 中使用硬删除 永久删除已经被标记为已删除的记录 软删除 在 GORM 中,软删除(soft delete)是指将记录标记为已删除,而不是从数据库中永久删除记录。软删除可以保留已删除记录的历史记录,同时
阅读全文
摘要:当今的 Web 应用程序中,数据存储和处理是至关重要的。在数据库中存储文本数据时,选择正确的字符编码是非常重要的。在这篇博客中,我们将探讨 UTF-8 和 UTF-8MB4 字符编码之间的区别,以及如何选择适当的字符编码来存储和处理文本数据。 UTF-8 和 UTF-8MB4 有什么区别? UTF-
阅读全文
摘要:什么是 parseTime=true 参数 parseTime=true 是一个 MySQL 数据库连接参数,它告诉 MySQL 驱动程序将日期时间类型的值解析为 time.Time 类型。在 MySQL 中,日期时间类型的值可以表示为字符串,例如 2022-07-01 13:30:00。默认情况下
阅读全文
摘要:1.概述 最近有个新需求,然后设计db的时候发现大部分字段都有取值范围限制,当然之前做法都是在后台服务器的接口请求时进行判断。但我现在想换种方式了,把部分功能前移给后台管理系统去实现,同时把约束后移到数据库层面,这样服务器就不需要增加接口了,如果功能复杂了再说。 我试了check约束和触发器约束 2
阅读全文
摘要:在mysql中,可以利用UNION操作符来合并查询结果,该操作符用于将两个以上的SELECT语句的查询结果合并到一起,然后去除掉相同的记录; 语法“查询语句1 union 查询语句2 union ....” union 去重查询;union all不去重查询 union all: union:
阅读全文
摘要:1.原因: 在写SQL 条件语句时经常用到 不等于 != 的筛选条件。 此时要注意此条件会将字段为 Null 的数据也当做满足不等于的条件而将数据筛选掉。 2.实例: 表A 执行如下查询: SELECT * FROM A WHERE B1 != 1 得到的结果如下: 第三列 B1为空的也是会筛选掉的
阅读全文
摘要:0. 为什么使用反范式化 数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,但是对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范化(非规范化处理)。
阅读全文
摘要:1、自然连接(natural join) 自然连接是一种特殊的等值连接,他要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,并且在结果中消除重复的属性列。 select * from student NATURAL join teacher; 结果:重复的列只显示一个 2、
阅读全文
摘要:定义 存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字和参数(如果该存储过程有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 优点 (1)重复使
阅读全文

浙公网安备 33010602011771号