mysql
mysql
.net core game
致力于.net core全栈游戏服务器开发
展开
-
mysql知识梳理
1)基础知识2)mysql在windows和linux下的安装3)mysql创建数据库4)mysql表操作: 创建表、插入、更新、删除、查询5)mysql索引的创建和使用6)索引优化7)mysql数据的备份和还原8)mysql主从架构9)redis做mysql缓存原创 2024-09-25 22:26:28 · 291 阅读 · 0 评论 -
navicat实现结构同步
2)选择目标,数据库,即可进行比对,从而生成数据结构差异sql,进行部署即可!1)选中数据库-->工具-->结构同步。原创 2024-09-25 22:03:52 · 40 阅读 · 0 评论 -
MariaDB远程无法连接
【代码】MariaDB远程无法连接。原创 2024-09-12 01:01:27 · 429 阅读 · 0 评论 -
mysql 8.4端口放行 还是连接不上的问题
【代码】mysql 8.4端口放行 还是连接不上的问题。原创 2024-09-07 22:09:36 · 132 阅读 · 0 评论 -
【重点是MybatisX插件】【Mybatis Plus学习笔记】 1.MybatisX插件安装
Wrapper: 条件构造抽象类,最顶端父类: 用于查询条件封装,生成 sql 的 where 条件: 查询条件封装: Update 条件封装: 使用Lambda 语法:用于Lambda语法使用的查询Wrapper: Lambda 更新封装Wrapper上面调用的是MyBatis-Plus提供的带有分页的方法,那么我们自己定义的方法如何实现分页呢?在UserMapper接口中定义一个方法/*** 根据年龄查询用户列表,分页显示。原创 2023-12-17 21:13:42 · 1197 阅读 · 0 评论 -
mybatis缓存的理解
可以看出来,1级缓存和2级缓存都可以放弃了,因为:我们在部署时,是使用nginx做集群部署,本地缓存无法使用,我们最终都用redis进行跨jvm级别的缓存。SqlSession级别,当查询后,就会进入1级缓存,是一个普通的Map存储数据,通过sql+参数等标记这个缓存。在进行删除,修改,commit...等操作后,1级缓存被清空。是鸡肋,因为会产生脏读问题。2.Mapper级别。原创 2023-02-20 00:10:09 · 96 阅读 · 0 评论 -
(重点)【mybatis generator实战】 1.crud 2.计数 3.自定义复杂mapper代码组织 4.分页插件 5.重复生成xml报错问题 6.跳过指定单元测试
1.计数。原创 2022-12-31 23:51:50 · 678 阅读 · 0 评论 -
【推荐】MybatisPlus学习笔记
为啥不用mybtaisplusplusgenerator不好用试试plus,用过之后我就抛弃gen了plus唯一缺点就是,不支持多主键多主键我用的是plusplus mybtais++查询的例子原创 2023-04-18 10:30:29 · 98 阅读 · 0 评论 -
自己写MapperXml核心点总结
Mybatis会自动检测Mapper接口中的返回值是单个实体,还是List或者Map。2.ResultType则是:只能根据setter封装基本的数据类型。原创 2023-02-19 20:15:32 · 117 阅读 · 0 评论 -
mybatis plus中json格式实战
1.自定义sql的话,TypeHandler是不生效的,需要通过ResultMap声明下转换器才行。2.增加字段发现确实是可以的,删除字段就报错,所以这也符合游戏的目标也就是不能删和改字段名字。但是QueryWrapper就可以,不知道这算不算bug。可见,业务层可以愉快的使用Entiy了。原创 2023-10-21 23:21:40 · 1280 阅读 · 0 评论 -
java线程死锁检测
【代码】java线程死锁检测。原创 2023-07-14 17:12:09 · 169 阅读 · 0 评论 -
mysql中库存扣除的方式【mysql层使用乐观锁 或 Redisson分布式锁】
由于:可能多个人同时查询,然后再去扣除,此时可能只会扣除一次的情况。查询出来Entity的数据 跟 mysql中的一致,才执行扣除。也就是使用MybatisPlus时,增加eq条件。都是先查询,再扣除。原创 2023-10-03 11:40:52 · 160 阅读 · 0 评论 -
【windows下导入sql文件到数据库中】
发现导入线上的数据库(数据量很多),用GUI工具发现总是出问题,改为命令后没问题,所以我现在更相信命令行的力量。1.一般sql中没有数据库创建,因此我们可以用 HeidiSQL先创建数据库。3.输入source,然后把sql文件拖入进来,则显示路径。原创 2023-10-02 20:33:31 · 223 阅读 · 0 评论 -
游戏web gateway何时需要分库分表
目前我们270W注册用户,没有分库分表。原创 2023-01-04 16:02:27 · 111 阅读 · 0 评论 -
有向图的使用场景:mysql事务的死锁检测 和 游戏中Manager之间的循环依赖关系判定
事务之间相互等待,事务A等待事务B,事务B等待事务A,此时就可会死锁。往往我们采取一个独立的线程,每间隔一段时间,就去检测这个有向图的情况。每一个事务都会持有一把锁,会把锁排好序用有向图表示出来。这时就可以把其中一个事务回滚,从而打破死锁。如果成环,那么就说明有死锁。原创 2022-11-01 22:07:51 · 292 阅读 · 0 评论 -
使用mysql完成k,v类似的数据库 及其 查询语句
1)k是255长度的varchar v是json2)执行插入sql语句insert into test (k, v) values ('1001', '{"2": 1}');3)插入后看下数据库中的数据总结:由于游戏服务器中的数据结构多变,因此都是采用json类型,这样子可以方便的增删字段。同时可以利用mysql的回滚,在一个业务中操作多张表,一张出错后,其它表数据也全部回滚。...原创 2022-04-02 10:44:47 · 1257 阅读 · 0 评论 -
mysql表例子 1.库存表 2.修改表时发给dba
1.alter table eshop_order add stock_trade_no varchar(120) null comment '库存交易流水号';第二批 计划执行时间 2021-04-26 白天执行1.alter table eshop_goods add stock_code stock_code varchar(120) null comment '库存代码';2.alter table stock add stock_code varchar(120) null.原创 2021-04-26 10:54:45 · 398 阅读 · 1 评论 -
【新账号注册与登录思考】1.一个api接口可能执行多条sql语句 2.注册和登录服务的分离
流程:1.玩家发起登录请求2.发起sql查询是否有该玩家,有的话判断账号密码是否正确3.没有该用户,则执行insert插入用户。 并插入后,立马执行查询操作,并登录。原创 2021-03-04 17:33:32 · 351 阅读 · 1 评论 -
【3种方法实现结果集到javabean的映射】 1.原生jdbc 2.万能方法之反射 3.javassist操作字节码生成对象字节码
通用数据结构UserEntity.javapackage org.example;public class UserEntity { @Column(name = "user_id") public int _userId; @Column(name = "user_name") public String _userName; @Column(name = "password") public String _password;原创 2021-01-31 22:45:52 · 257 阅读 · 0 评论 -
描述数据库表关系之间的ER图(1对1,1对多,多对1,多对多等关系)
为了搞清楚表之间的关系,可以用ER图方便方便的描述。原创 2020-09-25 10:26:11 · 18461 阅读 · 0 评论 -
mysql中请选择utf8mb4_general_ci 1.支持更多的字符从而避免emoji问题 2.更高的性能
1.utf8与utf8mb4(utf8 most bytes 4)MySQL 5.5.3之后增加了utfmb4字符编码 支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符 最多使用四个字节存储字符utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如e原创 2020-09-25 10:23:52 · 21501 阅读 · 0 评论 -
【记录别人遇到的一个问题】mysql查询的一个问题:根据主键却查询不到东西(解决办法: optimize table)
F.G 18:10:55一个是有一条数据,一个是没有数据F.G 18:14:39查询都没用,用这个optimize table 就可以了F.G 18:14:55有知道是什么原因的吗?F.G 18:16:46https://www.cnblogs.com/zhouzhou163/p/3542249.html ,你们有兴趣看看这个帖子吧,和我的一模一样,刚朋友给我的...原创 2020-09-23 13:38:37 · 421 阅读 · 0 评论 -
mysql数据库文件在win7上的位置
C:\ProgramData\MySQL\MySQL Server 5.7\Data原创 2020-07-11 22:00:37 · 271 阅读 · 0 评论 -
思考:事务的隔离级别与读写可见性
1)事务的基本介绍: (1)介绍:如果包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败 如:张三给李四转账500元,3个业务操作 1.查询张三账户余额是否大于500 2.张三账户 金额-500 3.李四账户 金额+500 但是: 如果这3个操作没有被事务管理的话,某一步出现了异常,500元就不翼而飞了. 演示: start transaction; update account set bala.原创 2020-05-17 15:03:44 · 723 阅读 · 0 评论 -
1.mysql中添加用户 2.用户能执行的CRUD权限的管理
1)4类SQL语句: DDL: 操作数据库和表 DML: 增删改 DQL: 查询 DCL: 管理用户及其授权 2)DBA: 数据库管理员3)管理用户 (1)添加用户 DCL创建用户的语法(不要用insert):create user '用户名'@‘主机名’ identified by ‘密码’; 如: create user 'zhangsan'@‘localhost’ identified by '123’; create user 'zhangsan'@‘%’ i.原创 2020-05-17 01:02:59 · 1251 阅读 · 0 评论 -
验证自己设计的数据库表是否合理的3大范式
1)三大范式 概念: 在设计数据库时,需要遵循的一些规范就叫做范式。 (1)1NF: 每一项都是不可分割的原子数据项 学号 姓名 系名 系主任 课程名称 分数 10010 张无忌 经济系 张三丰 高等数学 95 10010 张无忌 经济系 张三丰 大学英语 95 10010 .原创 2020-05-16 19:31:58 · 1242 阅读 · 0 评论 -
数据库设计中表之间的关系(1:1 1:N N:N)和在数据库中的实现
1)数据库的设计 (1)表的关系 (2)设计准则 2)多表之间的关系 及其 在数据库中的实现 (1)1对1: 如人和身份证 --> 不常见 student学生表 id name age cid(这个要外键唯一) 1 洪七公 85 1 2 周伯通 75 2 card身份证表 id number 1 612243234 2 523241423 解决办法:可以在.原创 2020-05-16 18:01:35 · 8564 阅读 · 0 评论 -
主键自增长、外键约束、级联更新
1)自动增长(配合int类型的主键使用, 自增后的id值取决于上一条) (1)如果某一列是数值类型的,使用auto_increment可以来完成值的自动增长 (2)创建表时,添加自动增长 create table stu{ id int primary key auto_increment, -- 给id添加主键约束 name varchar(20) } (3)删除自动增长 alter table stu modify id int; (4)添加自动增长 al.原创 2020-05-16 12:28:59 · 895 阅读 · 0 评论 -
jdbc控制事务案例: 转账出异常时,2个人的账户一起回滚保证正常(conn.setAutoCommit(false))
1)jdbc控制事务 (1)事务是包含多个步骤的业务操作,如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败; (2)操作: 转账为例子的事务代码package cn.itcast.jdbc;import cn.itcast.util.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;/** * 事务操作.原创 2020-05-12 15:04:40 · 327 阅读 · 0 评论 -
mysql并发安全问题的思考(避免并发插入时出现相同的用户名之unique 索引的使用)
package cn.itcast.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo02_Insert { public void f() { Statement stmt = null; Connection conn = .原创 2020-05-10 22:09:48 · 629 阅读 · 0 评论 -
JDBC规范中5个类DriverManager、Connection、Statement、ResultSet、PreparedStatement的介绍
1)DriverManager: 驱动管理对象 (1)注册驱动 registerDriver, 如何和Class.forName联系起来呢? Class.forName加载完毕后,肯定会有些代码自动执行, static块中调用了registerDriver; mysql5之后的驱动可以省略注册驱动,因为包里面会自动读取; (2)获取数据库连接 static getConnection url: 指定连接的路径. jdbc.mysql://ip地址或域名:端口/数据库名称 jdb.原创 2020-05-10 12:47:55 · 749 阅读 · 0 评论 -
【mysql为已经定义好的表添加主键】ALTER TABLE t_user ADD PRIMARY KEY (`uid`);
1)为t_user表添加uid主键ALTER TABLE t_user ADD PRIMARY KEY (`uid`);注意:mysql上的字段名那个是反斜杠,插入语句等也是反斜杠,不是单引号;uname等不用作为主键,插入数据前查询下是否有即可...原创 2019-06-02 12:42:43 · 3964 阅读 · 0 评论 -
【数据库备份与还原】1.mysqldump和heidisql 2种备份方式 2.source命令导入备份的sql语句还原
1)备份world数据库下面的所有表格C:\Program Files\MySQL\MySQL Server 5.7\binλ mysqldump -u root -p --databases world > bak.sqlEnter password: ******注意:加 --databases选项的话,会带有创建数据库的语句(用于另外一台机器上,没有这个数据库,准备恢复)...原创 2019-06-01 21:39:36 · 3716 阅读 · 0 评论 -
mac下安装完毕mysql5.7后修改密码
1)MYSQL5.7以下版本数据库密码使用的是mysql这个数据库里的user表的password这个字段,修改密码只需:update MySQL.user set password=password('root') where user='root' ;flush privileges;2)可是到了5.7版本,user表里就没有了password这个字段了要想修改密...原创 2018-12-25 22:48:17 · 207 阅读 · 0 评论 -
mysql查看版本: status
原创 2018-12-25 22:45:42 · 192 阅读 · 0 评论 -
mac下刚安装的mysql忘记密码的解决办法
-----情景:总是出现类似的错误-----C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqlERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)-----解决方案-----1.没有忘记mysql登陆密码的话(...原创 2013-12-05 14:28:57 · 1082 阅读 · 0 评论