需要把其他库或者Excel中的数据批量导入到指定库中,业务中需要判断是否为重复数据,但是大量数据录入时判断是否重复,如何实现?创建测试表CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT&nb...阅读全文>>
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题.sql model 常用来解决下面几类问题(1) 通过设置sql mode, 可以完成不同严格程度的数据校验,有效地保障数据准备性。(2) 通过设置sql model 为宽松模式,来保证大多数sql符合标准的sql语法,这样应用在不同数据库之间进行迁移时,则不需要对业务sql 进行较大的修改。(3) 在不同数据库之间进行数据迁移之前,通过设置SQL Mode 可以使...阅读全文>>
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步...阅读全文>>
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步...阅读全文>>
通过《云服务器安装mysql访问速度特别慢》这个方法,已经解决打开数据库特别慢,但是又发现一个问题,就是经常打开表特别的慢。Mysql服务器端会定时清理长时间不活跃空闲的数据库连接,以此优化数据库的性能。Navicat客户端有一个设置:保持连接间隔,默认是240秒!意思是,客户端在用户无任何交互性操作时,会每隔240秒给Mysql服务端发送一次数据请求。以此来保持数据库连接活跃!然而Navicat设置的心跳包间隔太长了,Mysql服务端直接将连接清理掉了。当我们打开一张表的时候,Navicat还是使用旧的连接去请求数据,发现旧的连接超时不能用了,最后又申请了一个新的连接,再去请求数据!所以导致...阅读全文>>
我在阿里云主机上使用宝塔安装了MySQL,在主机访问速度没有问题,但是我在远程本地访问时,连接打开数据库特别慢。但是程序的数据库连接池使用时,一旦连接建立使用上就没有问题了。解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve说明和提示:原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。How MySQL uses DNSWhen a new thread connects to mysqld, mysqld will spawn a new thread to handle the r...阅读全文>>
谁人不爱子孙贤,谁人不爱千钟粟。莫把真心空计较,五行不是这题目。书到用时方恨少,事非经过不知难。 行事存德,莫问前程。河狭水紧,人急智生。明知山有虎,莫向虎山行。路不行不到,事不为不成。无钱方断酒,临老才读经。点塔七层,不如暗处一灯。万事劝人休瞒昧,举头三尺有神明。 先看这条sqlSELECT @rowNum:=0;@rowNum:=0的意思是声明了一个叫rowNum的变量并赋值为0创建测试表CREATE TABLE `utest` ( `id` int(11) NOT N...阅读全文>>
前言参考Java对mongoDB增删改查操作,这里说明一下$set,$inc,$unset,$push,$pop,$pull,$pullAll,$rename的使用示例。MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本文介绍了Java操作MongoDB数据库的使用。首先我们已经初始化好了数据,如图这次在源代码的testUpdate方法中进行测试public static void&nb...阅读全文>>
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本文介绍了Java操作MongoDB数据库的使用。模式自由 :可以把不同结构的文档存储在同一个数据库里面向集合的存储:适合存储 JSON风格文件的形式完整的索引支持:对任何属性可索引复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群...阅读全文>>
假如一条SQL中,涉及到查询多个表,如果上面的SQL中查询出一个值并为它指定了别名,那么下文查询时能不能使用这个值呢?我不知道从哪里听的,而且一直这样以为,就是不能,因为很少写这样的代码,所以固执的一直这样认为。比如说如下SQL:SELECT (SELECT a.a1 FROM a WHERE id=22) as aa1, (select b.b1 from b where id=aa1) as bb1  ...阅读全文>>