
数据库
daijiguo
China NO.1
展开
-
mysql redolog binlog 之二阶段提交
文章目录一:什么是redolog和binglog?二:redolog和binlog可以相互替代或者只保留其一吗?1. 可以使用binlog替代redolog进行数据恢复吗?2. 可以只适用redolog而不是用binlog吗?三:为什么redolog和binlog要进行二阶段提交?四:二阶段提交步骤五、redolog和binlog二阶段提交与redolog和binlog的顺序提交是否真的有区别?六...原创 2020-03-20 10:08:41 · 6447 阅读 · 2 评论 -
mysql MVVC查询需要满足的条件
mysql MVVC用于repeatable read隔离级别,用于解决不可重复度的问题,根据MVVC机制,查询出来的行需满足以下两个条件:查询出来的行的创建时间小于等于当前事务ID,以确保执行当前事务之时,记录已经存在查询出来的行的删除时间,要么未定义,要么大于当前事务ID,以确保执行当前事务之时,记录还未被删除参考:https://blog.youkuaiyun.com/whoamiyang...原创 2020-03-18 08:23:05 · 400 阅读 · 0 评论 -
关于elasticsearch中_update_by_query接口乐观锁的思考
背景: 给某银行做一个实时计算项目,用户交易记录链路为oracle->ogg->kafka->flink->elasticsearch,交易记录最终到达Elasticsearch中并对外提供查询服务,交易记录中有个printNum字段,用来表示某条交易记录的打印次数,现需要提供一个接口进行打印次数的更新。方案: 首先想到的是,将这条记录的printNum查询出来然...原创 2019-11-04 20:30:05 · 1750 阅读 · 0 评论 -
远程跨服务器复制数据库的所有数据
mysqldump hikem -uroot -p123456 --add-drop-table | mysql -h 192.169.75.218 hikem -uroot -p123456注意:217服务器必须提前把hikem库建好原创 2018-01-29 16:57:29 · 885 阅读 · 0 评论 -
数据库连接池SQLAlchemy中多线程安全的问题
1、数据库模块model.pyfrom sqlalchemy.orm import scoped_sessionfrom sqlalchemy.orm import sessionmakersession_factory = sessionmaker(bind=some_engine)Session = scoped_session(session_factory)2、业...原创 2018-03-08 16:29:03 · 8561 阅读 · 3 评论 -
python redis批量模糊删除keys
>>> import redis>>> conn = redis.Redis(host='localhost', port=6379, db=0)>>> conn.delete(*conn.keys(pattern='*test*'))解释: conn.keys(‘test‘)返回一个匹配相应模式的列表 通过*号,可以看出...原创 2018-03-16 22:36:25 · 9587 阅读 · 0 评论 -
sqlalchemy插入操作后自动返回自增ID
result = session.execute('insert into ***')session.commit()last_insert_id = result.lastrowid注意:如果存在多个用户操作数据库,应保持每个用户或者每个请求线程拥有各自隔离的session...原创 2018-03-14 11:57:37 · 16474 阅读 · 1 评论 -
redis连接大坑
bind 127.0.0.1改成bind 0.0.0.0 网上所说的把bind 127.0.0.1并没有卵用原创 2018-07-21 09:01:21 · 310 阅读 · 0 评论 -
mysql备份和恢复整个数据库
1、备份mysqldump -u username -p password database_name>d:\database_name.sql2、恢复mariadb>create schema database_namemariadb>use database_namemariadb>source database_name.sql...原创 2018-07-21 23:07:56 · 5773 阅读 · 0 评论 -
centos7编译安装redis
原文:http://www.cnblogs.com/zhahost/p/5110376.html安装环境说明:操作系统:Centos 7安装路径:/usr/local/redis开始编译redistar -zxvf redis-2.8.19.tar.gz cd redis-2.8.19 makemake PREFIX=/usr/local/redis in转载 2017-09-11 14:26:39 · 364 阅读 · 0 评论 -
python连接redis单例模式
import redis class RedisCache(object): HOST = '127.0.0.1' PORT = 6379 DBID = 0 def __init__(self): if not hasattr(RedisCache, 'pool'): RedisCache.create_原创 2017-09-18 17:27:46 · 3963 阅读 · 0 评论 -
mariadb设置各种默认编码为utf8
1、登录MySQL,使用SHOW VARIABLES LIKE 'character%查看当前使用的字符集,应该有好几个不是UTF-8格式。2、要修改的配置文件位于 /etc/my.cnf.d目录下:client.cnf 在[client]字段里加入 default-character-set=utf8 server.cnf 在[mysqld]字段里加入 character-set-ser原创 2017-09-26 16:44:03 · 18365 阅读 · 7 评论 -
datagrip在离线状态如何安装数据驱动mysql-connector-java-5.1.40-bin.jar
1.离线下载mysql-connector-java-5.1.40-bin.jar2.复制mysql连接3.在新建的mysql drivers页面的JDBC drivers一栏,对“User provided driver”取消打钩,并点击加号,弹出一个jdbc-drivers的存放路径,将下载的mysql-connector-java-5.1.40-bin.jar放进去,并且选中apply->ok原创 2017-09-13 14:32:31 · 13193 阅读 · 0 评论 -
wamp安装redis扩展
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map转载 2017-06-14 16:04:01 · 423 阅读 · 0 评论 -
mysql查询符合某种条件的语句是第几条
1、set @ID=0;//自定义变量ID2、 select *, @ID:=@ID+1 //sql中=用于比较,:=用于赋值from (select *from abcwhere order_id = 416 and product_id = 41 order by creattime)原创 2017-07-04 08:49:03 · 1867 阅读 · 0 评论 -
触发器实例
多个执行语句的触发器的基本写法:CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name FOR EACH ROW trigger_stmt实例:创建一个触发器,每次插入一条数据之后分别往三张表插字段:CREATE TRIGGER trigger_student AFTER INSERT O原创 2017-06-01 08:00:49 · 488 阅读 · 0 评论 -
replace into和insert into区别
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。原创 2016-07-06 16:23:14 · 3458 阅读 · 0 评论 -
distinct后面接多个字段
如果distinct后方多个字段,去重去的就是3个字段“同时相同”的记录原创 2016-07-04 10:55:00 · 11828 阅读 · 0 评论 -
mongodb备份和恢复整个数据库
1、备份mongodump -h <hostname>:<port> -d <dbname> -o <dbdirectory> 解释:dbname指数据库,dbdirectory指备份存放目录2、恢复mongorestore -h <hostname>:<port> -d <dbname>原创 2018-07-22 08:55:19 · 6932 阅读 · 0 评论 -
windows上mariadb,迁到linux上的注意事项
1、mariadb版本是否相同 2、windows上mariadb表名默认不区分大小写,linux上mariadb表名默认区分大小写,需要做如下配置:vim /etc/my.cnf.d/server.cnf#server.cnf[mysqlld]lower_case_table_names=1...原创 2018-08-10 11:47:39 · 423 阅读 · 0 评论 -
linux完全卸载mariadb
1、卸载mariadb:yum remove mariadb2、删除配置文件:rm -f /etc/my.cnf3、删除数据目录:rm -rf /var/lib/mysql/原创 2018-08-10 11:50:23 · 32371 阅读 · 1 评论 -
spring mvc过滤器Filter与druid数据源中Filter中的区别与关联
文章目录一、背景:二、spring mvc中的Filter:二、druid中的Filter:一、背景: 使用阿里druid数据源,可以在页面对sql和spring bean进行调用频次的监控,以排查慢查询等问题,但是必须得配置一些filter,如Log4jFilter、WallConfig、StatFilter等等,一直疑惑druid中的各种filter配置与spring web项目中的fi...原创 2019-09-03 13:45:51 · 1035 阅读 · 0 评论 -
elasticsearch线程池调优
参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html#fixed-auto-queue-sizehttps://kionf.com/2019/01/22/errornote-elk/转载 2019-05-29 23:18:34 · 6796 阅读 · 0 评论 -
mongo导出导入表数据
导出mongoexport --host 192.168.0.221 --port 20058 -d test -c salary --type json --out D:\abc.json导入mongoimport --host 192.168.0.221 --port 20058 -d test -c salary --type json --file D:\abc.json...原创 2019-01-11 17:29:39 · 2070 阅读 · 0 评论 -
mybatis中,java Enum与postgresql Enum的映射
背景: 前端传入字符串,后台用java Enum接收,再将该字段插入postgresql Enum字段中。该过程,涉及两次类型转换:springmvc通过HttpMessageConvert对象将json字符串映射到DTO中的Enum属性。mybatis通过TypeHandler将java Enum转换成posgresql Enum类型。然而,jdbcType并没有Enum类型,该...原创 2019-01-17 11:28:22 · 1247 阅读 · 0 评论 -
springboot+mybatis+druid实现多数据源配置,支持注解和xml两种sql书写方式
https://github.com/cheegoday/springboot-demo-djg要点:一、依次创建以下几个Bean数据源:DataSourcesession工厂:SqlSessionFactory线程安全session:SqlSessionTemplate事务管理器:DataSourceTransactionManager二、mapper xml的配置如果采用x...原创 2019-01-17 11:28:49 · 916 阅读 · 1 评论 -
mybatis配置中的数据源datasource是什么?
一言以蔽之:数据源是一个实现了datasource接口的类,它实现了连接和连接池的功能。结论:因此,如果你想用druid连接池,那你只能用druid的数据源new DruidDataSource();如果你想用hikari的连接池,那你只能用hikari的数据源DataSourceBuilder.create().build()(springboot默认数据源)。你不可能使用hikari的...原创 2018-12-09 12:56:43 · 3198 阅读 · 1 评论 -
数据库NULL的缺点分析
一、空间相关“”不占空间,NULL占空间二、索引相关B树不存NULL,因此索引用不到NULL三、count函数相关count(*)包含NULL,count(id)不包含NULL原创 2018-12-06 13:10:48 · 2330 阅读 · 0 评论 -
数据库连接池该设置多大?
https://www.jianshu.com/p/a8f653fc0c54另附上自己的手稿原创 2018-10-18 22:17:45 · 4247 阅读 · 0 评论 -
配置安装postgresql 9.6
一、下载postgresql的yum源yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm二、安装postgresqlyum install -y postgresql96-server postgresql96...原创 2018-09-28 10:59:16 · 2556 阅读 · 0 评论 -
PageHelper原理
使用方法: PageHelper.startPage(page, rows);//第一句 Query(params);//第二句问题一:看似第一句和第二句没有任何关系,为何第一句会影响第二句?答案:通过ThreadLocal传递page、rows变量ThreadLocal把分也变量page和rows传给mybatis拦截器(一条判断是否存在ThreadLocal变量的...原创 2018-09-14 18:03:21 · 3045 阅读 · 3 评论 -
mybatis.type-aliases-package之巨坑
mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用,例如<select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">,又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描...原创 2018-09-24 10:11:02 · 86778 阅读 · 9 评论 -
postgresql中设置默认编码
postgresql有两个默认模板template0和template1,创建数据库默认是以template1作为模板,两个模板的区别是,如果以template0作为模板,可以自定义编码,如下:create database db TEMPLATE template0 问题似乎变得很明朗,想要改变postgresql的表的默认编码,只要改变template1的编码即可:UPDATE pg_...原创 2018-09-19 09:57:45 · 9677 阅读 · 0 评论 -
postgresql中cluster、catalog、database、schema、table的区别
Example ScenarioFor example, a company could have two different software development teams. One writes software to manage the warehouses while the other team builds software to manage sales and mark...转载 2018-09-18 21:53:18 · 5205 阅读 · 0 评论 -
Spring+Mybatis开发环境中的SqlSessionTemplate对象为什么是线程安全的?为什么不会发生数据库连接泄露?
问题一:SqlSessionTemplate对象为什么是线程安全的? SqlSessionTemplate是SqlSession接口的一个实现,为Spring容器所独有,一般在Spring容器中定义如下:&amp;amp;amp;amp;lt;bean id=&amp;amp;amp;quot;sqlSession&amp;amp;amp;quot; class=&amp;amp;amp;quot;org.mybatis.原创 2018-09-17 17:35:23 · 1501 阅读 · 1 评论 -
mariadb设置密码,允许远程访问权限
1、修改密码:use mysql;update user set password=password("123456")where user='root';flush privileges;2、允许远程访问权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;...原创 2018-08-10 11:55:29 · 2433 阅读 · 0 评论 -
mysql查询时区分大小写的方法
mysql> create table case_test (word VARCHAR(10)) CHARACTER SET latin1; Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO case_test VALUES ('Frank'),('Google'),('froogle'),('flickr'),('Flic原创 2016-05-05 16:32:07 · 517 阅读 · 0 评论 -
数据库性能优化技巧之:变长表、定长表
什么是定长表和变长表?包含任何varchar、text等变长字段的数据表,即为变长表,反之则为定长表。表设计思路:在设计表结构时如果能够使用定长数据类型尽量用定长的,因为定长表的查询、检索、更新速度都很快。必要时可以把部分关键的、承担频繁访问的表拆分,例如定长数据一个表,非定长数据一个表。因此规划数据结构时需要进行全局考虑;进行表结构设计时,应当做到恰到好处,反复推敲,从而实现最优转载 2016-05-12 10:22:01 · 3460 阅读 · 0 评论 -
textarea和mysql中的换行符问题
今天碰到一个问题,一直无法解决,后来让stan帮我搞定了,老手解决问题就是快。问题:我手动在phpmyadmin中输入了一段带有换行符的字符串,取出来放到中,在通过form表单提交的到一个页面。我把$_POST中的字符串(即textarea中的字符串)跟数据库中的原字符串对比,怎么都不相等,最后,找到问题的根源,换行符。问题分析与解决:手动在mysql中敲入的换行是\n,tex原创 2015-08-27 09:40:11 · 3514 阅读 · 0 评论 -
select多个表的字段,如何操作
INNER JOIN 语法: INNER JOIN 连接两个数据表的用法:SELECT * from 表1 INNER JOIN 表2 on 表1.字段号=表2.字段号 INNER JOIN 连接三个数据表的用法:SELECT * from (表1 INNER JOIN 表2 on 表1.字段号=表2.字段号) INNER JOIN 表3 on 表1.字段号=表3.字段号 INNE原创 2015-08-12 19:22:00 · 2053 阅读 · 0 评论