数据库实践
介绍数据库的特性,与数据库相关的表设计,各类中间件及框架与数据库之间的接口
木子叶
这个作者很懒,什么都没留下…
展开
-
mysql事务,select for update,及数据的一致性处理
mysql事务,select for update,及数据的一致性处理在MySQL的InnoDB中,预设的Tansaction isolation level 为REPEATABLE READ(可重读)在SELECT 的读取锁定主要分为两种方式:SELECT … LOCK IN SHARE MODESELECT … FOR UPDATE这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行。而主要的不同在于LOC转载 2020-09-11 15:18:24 · 720 阅读 · 0 评论 -
MySQL乐观锁与悲观锁
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则会被block。乐观锁乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人转载 2020-09-11 15:06:34 · 266 阅读 · 1 评论 -
MySQL分区和分表的概念
文章目录一、概念二、分区1.分区的类型:2.分区管理3.分区应该注意的事项:三、分表1.垂直分表2.水平分表(1)按时间结构(2)按版块结构(3)按哈希结构一、概念1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。2.什么是分表?分表是将一个大原创 2020-09-11 12:15:29 · 406 阅读 · 0 评论 -
Oracle基础知识及查询优化
文章目录Oracle基础知识总结一、基础知识(DML)1、Select语句2、Order By 、Group By子句3、Distinct子句4、Where子句5、And子句6、Or子句7、 Fetch子句OFFSET子句FETCH子句8、IN子句9、Between子句10、Like子句通配符2、Insert语句3、Update语句4、Delete语句二、DDL语句1、数据库创建2、数据库删除3、创建表4、修改表5、删除表6、截断表(彻底释放表占用空间)7、闪回8、约束9、视图三、索引1、建设原则2、创建索原创 2020-09-11 09:03:55 · 1025 阅读 · 0 评论 -
MySQL设计规范及性能优化
文章目录一、数据库命令规范二、数据库基本设计规范三、数据库字段设计规范四、索引设计规范常见索引列建议如何选择索引列的顺序索引SET规范五、数据库SQL开发规范六、数据库操作行为规范超100万行的批量更新操作,要分批多次进行操作对于大表使用pt-online-schema-change修改表结构。禁止为程序使用的账号赋予super权限对于程序连接数据库账号,遵循权限最小原则一、数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割。所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含原创 2020-09-10 21:50:33 · 483 阅读 · 0 评论 -
centos7下mysql不区分大小写配置以及启停命令
明确表名以及字段名是否区分大小写,对于开发人员来说非常重要。mysql的配置,我个人习惯于不区分大小写。原因是mysql默认在linux环境下区分表名的大小写,不区分列名的大小写,在windows环境下不区分大小写,这非常容易混淆。以下说明在centos 7下mysql不区分大小写的设置1、不区分大小写设置用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加low...原创 2020-02-28 21:39:18 · 1764 阅读 · 0 评论 -
使用powerdesigner导出设计文档
在数据库设计过程中,powerdesigner可以用于设计数据库的物理视图,甚至直接通过设计文档生成对应数据库的表结构。同样,它也可以用于从已经存在的数据库中,动态生成对应的表关系结构,方便动态更新数据设计。对于非专业人士,PDM图不方便查阅和理解,那么,如何将PDM图转化为他们能够理解的文档呢?这里介绍一种使用p...原创 2019-12-24 18:27:24 · 1286 阅读 · 0 评论 -
【Activiti学习笔记】一、Activiti5.22的数据库表结构介绍
在正式开始讲解activiti之前,我们先对activiti的数据库表结构进行介绍。学习activiti的思路是先了解他的数据库设计,找出数据表之间的逻辑关系,然后以生活中一个常见的栗子——请假流程为例,来发现在请假流程中的每一个环节,数据表如何记录这种关联关系。流程引擎的作用则是为实现这种逻辑关系提供了简化API...原创 2019-07-17 09:36:47 · 3045 阅读 · 0 评论 -
MySQL中int(11)最大长度是多少?
MySQL中int(11)最大长度是多少?今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的,再次验证9个9的时候又失败了。经过查询资料,最终找到了关于mysql中的数据类型 int(11)的介绍在SQL语句中int代表你要创建字段的类型,in...转载 2019-07-12 16:12:29 · 5902 阅读 · 0 评论 -
错误:The server time zone value is unrecognized or represents more than one time zone
服务器的时区的识别或代表多个时区。您必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)使用一个更具体的时区值如果你想利用时区支持。在通过在数据库连接URL后,加上?serverTimezone=UTC为什么是UTC环境需要:如要维护多国环境如中美,时区一致便与维护避免风险:避免PDT时区换算出错作者:学zhe来源:CSDN原文:https://blog.c...转载 2019-07-18 17:08:04 · 4672 阅读 · 1 评论 -
错误: Unable to load authentication plugin 'caching_sha2_password'.
错误信息:java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.原因:mysql-connector的版本不对,我之前是3.0.16,旧版本不支持sha,替换为新版本即可,我替换为了8.0.15...原创 2019-07-18 17:02:12 · 12287 阅读 · 0 评论