
MySQL
文章平均质量分 74
ezreal_pan
这个世界总有人是第一,那个人为什么不能是我?
有很多原因造成我不是第一,但是,不能阻挡我朝着成为第一的目标努力!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ShardingSphere-Proxy分表场景:go测试案例
接续上篇文章《原创 2024-12-31 16:22:02 · 512 阅读 · 0 评论 -
ShardingSphere-Proxy分表场景测试案例
快速入门文章参考:《基于K8S部署文章参考:《基于golang的测试用例参考:《原创 2024-12-31 16:07:22 · 1289 阅读 · 0 评论 -
图文社区用户搜索关系表设计方案:空间换时间的权衡与抉择
本质上第二种方案也是一种空间换时间的方案,把复杂的查询退化成简单的查询。空间换时间是一种思维方式,不能仅仅狭隘的认为用缓存换时间是空间换时间,同一个表基于不同的分表键或者分库健进行分表分库是空间换时间。原创 2024-12-20 16:40:05 · 928 阅读 · 0 评论 -
ShardingSphere-Proxy报错:Table or view ‘user‘ does not exist.
在《》这篇文章中,我详细记录了如何基于 Docker 运行 ShardingSphere-Proxy,并通过 Navicat 等工具连接到 ShardingSphere-Proxy 进行操作。然而,在实际测试过程中,我遇到了一个报错:“Table or view ‘user’ does not exist”。经过排查,我发现这个报错主要由两种场景触发。原创 2024-12-13 16:23:44 · 952 阅读 · 0 评论 -
ShardingSphereProxy:快速入门
在基于 Docker 安装 ShardingSphere 时,按照官方文档《》所提供的步骤操作即可。在运行ShardingSphereProxy之前,我们需要基于我们的测试场景修改配置文件,我测试场景中主要用了三张表,一个订单表,订单表基于user_id进行分表,还有一个user表和product表,这两张表未进行分表。基于这个场景,我们只需要修改两个配置文件,这两个配置文件分别是和。原创 2024-12-13 15:36:17 · 1264 阅读 · 0 评论 -
MySQL索引再认识
在最近的一次MySQL测试过程中,我的同事幺加明遇到了一些令人困惑的现象,这些现象超出了我们最初的预期。一直以来,我们在建立索引时,首要考虑的原则是在区分度大的字段上建立索引。然而,在实际测试中,我们发现区分度大的索引并不总是最佳选择,而是需要结合具体的使用场景进行深入分析。综上所述,索引的建立并不是一件简单的事情,而是需要根据实际数据场景进行测试和分析,才能得到最优解。的区分度不高,导致扫描的行数仍然较多,但由于是联合索引,至少减少了回表操作,所以查询速度得到了显著提升。索引后,查询时间只需要6毫秒!原创 2024-12-06 15:53:46 · 593 阅读 · 0 评论 -
并发环境下,如何确保B表插入依赖于A表状态时的数据一致性?
具体来说,当事务1正在执行删除A表记录的操作时,事务2可能同时查询A表并决定插入B表。如果事务2的查询操作先于事务1的删除操作完成,那么事务2将看到A表记录未被删除的状态,并据此插入B表记录。我们可以这样实现:首先开启一个事务,尝试插入数据到B表,然后更新A表的相关记录,依据其删除状态。若更新成功,表明A表记录未被删除,此时提交事务,确保B表插入生效。若更新失败,则意味着A表记录已被删除,随即回滚事务,B表的插入操作也随之取消。有这么一个场景,当A表的一条记录被删除了,B不能执行插入的操作。原创 2024-11-01 15:13:31 · 245 阅读 · 0 评论 -
gorm.io/sharding改造:赋能单表,灵活支持多分表策略(下)
通过改造组件,我们实现了根据表名+分表键获取对应分表策略的逻辑。这一改造使得组件能够支持单表多个分表策略,更加灵活和强大。目前,我们已经简单测试了查询和插入场景,更复杂的场景和并发情况还需进一步测试和优化。通过这一改造,我们为业务逻辑的执行提供了更加精准和高效的分表策略定位。原创 2024-10-24 18:19:51 · 986 阅读 · 0 评论 -
gorm.io/sharding改造:赋能单表,灵活支持多分表策略(上)
通过对组件的改造,我们成功地实现了单表支持多个分表逻辑的功能。这一改进不仅提高了组件的灵活性,也使其能够更好地满足实际业务场景中的需求。然而,这篇文章尚未触及一个至关重要的议题:在增删改查的实际业务操作中,分表组件究竟如何精准地定位到对应的分表策略,以确保业务逻辑的顺利执行?这一环节对于分表技术的实际应用至关重要。关于组件在这一关键领域的改造与升级,鉴于其复杂性和重要性,我将在接下来的文章中展开详尽的阐述。在此次深入剖析中,我们将一起探索。原创 2024-10-24 16:48:46 · 1044 阅读 · 0 评论 -
gorm.io/sharding:改造,当查询条件中不包含分表键时,从自定义方法中获取对应的表进行查询
这篇文章是一种特殊的情形——当查询条件中不包含分表键时,从自定义方法中获取对应的表进行查询。实际项目中并不建议这种用法。当然,这里只是提供一种思路。这篇文章也是这个系列中的第三篇文章。前两篇文章《》、《》有兴趣的看官可以移步过去看看。原创 2024-09-24 17:51:53 · 643 阅读 · 0 评论 -
gorm.io/sharding使用中遗留问题探究:Error 1062 (23000): Duplicate entry ‘2‘ for key ‘orders_2025.PRIMARY
实际上因为支持自定义方法,也没有必要去修改源码中的问题,只是用于探索一下其实现原理。原创 2024-09-24 11:16:25 · 636 阅读 · 0 评论 -
基于gorm.io/sharding分表中间件使用案例
项目中需要用到mysql的分表场景,调研了一些常用的分库分表中间件,比如,mycat,小米的Gaea,这两个中间件太重了,学习成本较大,另外mycat不是go写的。我们需要一个轻量级的go版本的分表中间件。所以,把目光放在了如下这个开源组件上。原创 2024-09-23 16:39:25 · 2242 阅读 · 0 评论 -
收集整理 Mysql 的一些用法
1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server— 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'— 开始 备份B...转载 2018-08-07 18:44:19 · 278 阅读 · 0 评论 -
MySQL SHOW命令
MYSQL SHOW 命令desc 表名;show columns from 表名;describe 表名;show create table 表名;show create database 数据库名;show table status from 数据库名; // 显示数据库show tables或show tables from database_name;解释:显示当前数据库中...原创 2018-08-07 18:13:34 · 213 阅读 · 0 评论 -
MySQL IF表达式
自己没有系统的学习过数据库,学到什么就记录点什么,方便自己查阅,如果在此过程中,能给陌生的你带来帮助那便是更好。 IF表达式IF(expr1,expr2,expr3)如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。比如:select *,if(sex=1,男","女") as ssex from taname 这个语句就是表...原创 2018-07-19 09:55:48 · 641 阅读 · 0 评论