数据库
weixin_40637783
这个作者很懒,什么都没留下…
展开
-
缓存数据库一致性
原创 2022-02-09 08:58:39 · 366 阅读 · 0 评论 -
数据库索引相关
1 索引建立常用原则高离散度:表的某个字段值得离散度越高,该字段越适合选作索引的关键字。内存占用少:占用存储空间少的字段更适合选作索引的关键字最左前缀原则经常修改的不适合做索引2 索引失效1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不满足最佳左前3.like查询是以%开头4.如果使用全表扫描要比使用索引快,则不使用索引5.数据类型出现隐.原创 2020-12-31 15:43:30 · 43 阅读 · 0 评论 -
数据库性能优化
在大数据量场景下,数据的入库性能成为了重中之重,记录下数据库性能优化的点1 索引层面索引是为了方便查询的,但是索引的建立需要额外的性能开销。在测试中发现,500w数据场景下,建立一个单列索引需要3min左右。如果还有其他索引可能带来的影响更大。索引的建立必须是在业务场景下使用频繁,能够带来较大的查询收益的。(1)首先需要整理业务中的查询逻辑,各场景下的查询条件,得到最为频繁的查询条件。(2)针对查询条件建立索引,索引最好能够复用。且满足常见索引的建立原则。(3)去除没有使用的索引原创 2021-03-08 10:34:45 · 110 阅读 · 1 评论 -
数据库批量多表更新优化
在项目中遇到两表关联更新的问题,将A表的a字段更新到B表的b字段,A表和B表都有相同的元素列。遇到这个题目想的最简单的方式就是 updateA set a=B.b from where A.id=B.id。下面详细介绍本次优化过程一 update set from 语句updateopenans_ncc_topo_default_ltpsetrelated_ltp_id=openans_ncc_topo_default_layer.underlayfromopenans_n...原创 2022-02-05 19:04:54 · 917 阅读 · 0 评论 -
mybatis-plus支持联合主键
背景:由于在项目中是需要使用联合主键,但是mp本身对联合主键支持非常不友好,现开发一个联合主键(1)注解定义在需要使用的实体上加上@MutiId,其中ids表示联合主键的数组@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})public @interface MultiId { String[] ids() default {};}(2)查询的原创 2022-03-29 10:36:03 · 8767 阅读 · 2 评论 -
mybatis-plus支持批量插入批量更新
一 背景:由于项目引入mybatis-plus,但是mp是不支持数据的批量写入与批量更新的,故针对批量接口,做统一的持久层封装二 mybatis-plus的扩展点:sql注入器这是mp自身封装的,这也是mp的一个特点public class DefaultSqlInjector extends AbstractSqlInjector { @Override public List<AbstractMethod> getMethodList(Class<?原创 2022-03-29 10:24:44 · 3777 阅读 · 2 评论 -
PG分区表
一 建立附表,即对外的逻辑表PG传统的分区表是通过继承的方式实现的,即首先定义一个父表如下:CREATETABLEpublic.openans_ncc_topo_default_risk_base_link( link_idvarchar(512)NOTNULL, status_indexint4NOTNULL, down_timevarchar(256)NULL, up_timevarchar(256)NULL, cur_timetimestampNOT...原创 2021-07-08 11:16:41 · 744 阅读 · 0 评论 -
MyCat入门
1 环境准备 (1)下载解压后可直接使用 (2)配置文件的修改 首先打开server.xml文件,将其里面的user修改为:外部访问的用户和密码设置。<user name="root" defaultAccount="true"> <property name="password">123456</property> <property name="schemas">test</property> &l...原创 2021-01-13 14:44:48 · 68 阅读 · 0 评论 -
PG数据库
一 PG数据库批量插入方式1 insert into ...select...该方式大多数数据库都支持方式2 insert into values(),(),()...()方式3 copy 与\copycopy table1 to '/root/x.txt' 导出数据copy table1 from '/root/x.txt' 导入数据...原创 2021-01-05 18:32:55 · 184 阅读 · 0 评论 -
数据库事务
1 事务四特性ACID原子性:即一个操作要么全部成功,要么全部失败 一致性:事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败 隔离性:一个事务在提交之前,另外一个事务不应该能看到这个事务提交的内容,两者应该相互隔离 持久性:一个事务一旦操作成功,则结果一定是永久性的2 查看事务是否开启show variables like 'autocommit'+---------------+-------+| Variable_name | Value |+---------.原创 2021-01-01 22:17:58 · 112 阅读 · 0 评论 -
Mysql存储引擎
存储引擎 InnoDB 物理文件结构(1)任何存储引擎都不可或缺的存放表结构定义的.frm(Form)文件 (2)存放表数据的.MYD文件(My Data) (3)存放索引数据的.MYI文件(My Index)支持的索引类型(1)BTree索引(最常见) (2)R-Tree索引 (3)Full-Text索引 锁机制--表锁 Mylasm 物理文件结构(1)同MyISAM一样的是,InnoDB存储引擎也有.frm文件存储...原创 2020-12-31 16:25:22 · 62 阅读 · 0 评论