
数据库
文章平均质量分 58
恒奇恒毅
Javaer
展开
-
mysql主从失败回溯
生产环境mysql是主从同步架构。某日,偶然发现数据库主从数据差别很大,使用`show slave status`才发现SQL Running已经是NO了。通过查询`select * from performance_schema.replication_applier_status_by_worker\G;`发现LAST_ERROR_MESSAGE为`“worker 0 failed excuting transaction 'xxx' at master log .....Query: alter...原创 2021-08-11 18:07:26 · 184 阅读 · 0 评论 -
使用PreparedStatement进行批量插入
有一个文本文件,按照某些字符进行分割,需要导入数据库。下面给出比较通用的方法。 public static void batchInsert(Connection connection, File file, String splitStr, int batchSize) throws Exception { long start = System.currentTimeMillis(); String fileName = file.getName();原创 2021-05-26 23:21:33 · 1059 阅读 · 0 评论 -
JOIN 7图:念念不忘必有回响
以A为emp,B为dep为例,A.deptId=B.idA a left join B b ON a.deptId=b.id就表示A的全部,如果没有关联的dept,其B相关信息就为nullA a right join B b ON a.deptId=b.id就表示B的全部,如果没有关联的dept,其A相关信息就为nullA a left join B b ON a.deptId=b.id WHERE b.id IS NULL就表示只要有部门的员工A a right join B b ON..原创 2020-10-16 15:59:20 · 211 阅读 · 0 评论 -
如果mysql的自增主键达到最大值会发生什么?
如果mysql的自增主键达到最大值会发生什么?比如主键类型设为int,其最大值为:2147483647,如果此时我们再往其中写入数据,就会发生异常:Duplicate entry '2147483647' for key 'PRIMARY'也即写不进去了。如果发生了这种情况,应该是设计架构就有问题。并且当数据达到千万上亿级别,查询将变得奇慢无比,也是不可取的。在设计架构...原创 2019-10-25 09:56:57 · 6787 阅读 · 2 评论 -
Java应用层做过滤
数据库对某些条件的过滤支持不是很好,比如LIKE,造成查询效率不高,实践中我们设计了一个工具类,用于Java应用层过滤。我们基于JFinal的Db+Record实现。首先设计一个记录过滤器RecordFilter,用于判断某个Record是否满足要求。import com.jfinal.plugin.activerecord.Record;import java.uti原创 2018-01-16 17:23:01 · 942 阅读 · 0 评论 -
高并发量网站解决方案
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的ht转载 2016-09-01 00:19:12 · 580 阅读 · 0 评论 -
MySQL存储过程和代码分别生成订单号,MySQL拾遗
业务中我们的订单号有几位是一个序列,每天的第一笔订单序列为1,以后每增加一个订单序列+1。每天需要清零。如果是Oracle就可以直接使用Sequence实现。在MySQL中,我们在数据库中设计一个表表中只有一条记录,通过update_day判断同一天每次sequence+1,第二天的话就更新update_day。代码实现:String getOrderSeq() {原创 2016-03-29 12:54:02 · 3814 阅读 · 0 评论 -
MySQL:MySQL基本入门
命令行连接服务器 mysql -h xxx -uUsername -pPassword; -h不写就是localhost查看当前服务器下有哪些数据库? show databases;创建数据库 create database _name; CREATE DATABASE IF NOT EXISTS _name DEFAULT CHARSET utf8转载 2015-11-04 13:48:10 · 392 阅读 · 1 评论 -
xss攻击入门
xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。xss攻击可以分成两种类型:非持久型攻击持久型攻击下面我们通过具体例子,了解两种类型xss攻击。 1.非持久型xss攻击顾转载 2016-04-14 19:18:36 · 1714 阅读 · 0 评论 -
数据库的数据类型
一、 整数数据类型整数数据类型是最常用的数据类型之一。1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。2、SMALLINT转载 2016-03-27 20:57:52 · 1146 阅读 · 0 评论 -
JFinal的Db+Record模式执行流程
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。ORM执行示例// 创建name属性为James,age属性为25的record对象并添加到数据库Record user = new Record().set("name", "James").set("age",...转载 2016-04-04 15:12:55 · 15678 阅读 · 0 评论 -
MySQL:关于Lock wait timeout exceeded; try restarting transaction
1、锁等待超时。是当前事务在等待其它事务释放锁资源造成的。可以找出锁资源竞争的表和语句,优化你的SQL,创建索引等,如果还是不行,可以适当减少并发线程数。2、你的事务在等待给某个表加锁时超时了,估计是表正被另的进程锁住一直没有释放。可以用 SHOW INNODB STATUS/G; 看一下锁的情况。3、搜索解决 之道在管理 节点的[ndbd default]区加:Transacti...转载 2019-07-27 19:55:18 · 7642 阅读 · 0 评论 -
一个类似阿里云RDS的网页数据库管理系统
后台利用JFinal的Db+Record做连接数据库的工具,前端使用jQuery作动态修改网页。原创 2017-01-11 21:42:51 · 1430 阅读 · 0 评论 -
MySQL:MySQL日志
【例15.1】使用SHOW VARIABLES语句查询日志设置,执行的语句及结果如下: SHOW VARIABLES LIKE 'log_%' ;【例15.2】使用SHOW BINARY LOGS将查看二进制日志文件个数及文件名,执行命令及结果如下: SHOW BINARY LOGS;【例15.3】使用mysqlbinlog查看二进制日志,执行命令及结果如下:C:\> my转载 2015-11-18 12:21:12 · 628 阅读 · 0 评论 -
利用DataBaseMetaData和ResultSetMetaData复制数据库的表和数据
测试代码见我的云盘“学习路径/自己做的例子/CopyDatabase”我们有时候可能需要复制一个数据库中的数据,可能同一个数据库中操作还简单,但是跨数据库的操作就可能很麻烦了,常见的工具都做不到。现利用DataBaseMetaData和ResultSetMetaData实现了一个功能,生成数据库中的表的所有数据的insert语句,你只需要在你的数据库中运行这个代码即可。操作步骤原创 2016-01-11 11:08:33 · 1450 阅读 · 0 评论 -
一个处理SQL语句多条件添加的工具类
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。我们写SQL语句的时候,有时候查询条件非常多,并且可能有可能没有,如果手动拼写,可能由于疏忽少写空格,关键字等,并且添加条件的时候可能需要写大量的判断语句,非常不好。我写了一个工具类,很适合处理这种情况。源码如下。i...原创 2018-04-28 16:19:34 · 1801 阅读 · 1 评论 -
MySQL存四字节数据(emoji)
现在MySQL的字符编码使用最多的是utf8,但是此utf8最多只能存3字节字符,如果遇到像emoji这种四字节字符就无能为力了,保存的时候就会抛出异常:Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1。遇到这个问...原创 2018-08-02 11:05:29 · 1197 阅读 · 0 评论 -
JPA返回实体如果修改某些字段会执行update语句
JPA返回一个从数据库查询的实体的时候,如果对这个实体执行了修改操作,典型的set方法被调用,那么就会执行一个update语句。可以通过clone方法或者转换为Map等方式避免。public Map<String , Object> buildLoginSuccess(Entity entity){ Entity temp = entity; if...原创 2019-07-24 21:02:09 · 1905 阅读 · 0 评论 -
关于mysql的delete和主从同步问题
mysql的delete并不会真正删除磁盘空间,而只是标记相应的区域,在合适的时候还可以再利用。如果要真正腾出磁盘空间,还必须使用optimize table xxx进行磁盘碎片处理,但是这个命令会在相应的库下产生一个很大的#sql-xxx文件(增长速度特别快,根据清理的表的大小),所以不能等磁盘已经快满了才想起来清理,正所谓天晴修屋顶。optimize命令会锁表,一般根据table的增长速度和删...原创 2019-08-09 09:46:29 · 2908 阅读 · 0 评论 -
通过Ipv6连接数据库的几项注意
0.首先主机【包括客户机和服务器】要支持ipv6 ping6 -I eth0 IPV6_ADDRESS 可以判断连通性 由于在ping本地的ipv6地址时,需要指定一个用来发送数据包的网络界面,所以需要添加-I参数1.mysql监听IPV6 配置文件配置 bind_address = :: [或者IPV6地址] 或者不绑定就可以监听v4和v6 n...原创 2019-08-29 09:03:51 · 1538 阅读 · 0 评论 -
MySQL:MySQL函数大体
【例6.1】求2,-3.3和-33的绝对值,输入语句如下:SELECT ABS(2), ABS(-3.3), ABS(-33);【例6.2】返回圆周率值,输入语句如下: SELECT pi();【例6.3】求9,40和-49的二次平方根,输入语句如下: SELECT SQRT(9), SQRT(40), SQRT(-49);【例6.4】对MOD(31,8),MOD(234,转载 2015-11-06 10:29:13 · 1050 阅读 · 1 评论 -
MySQL:数据表的基本操作
【例4.1】创建员工表tb_emp1。首先创建数据库,SQL语句如下:CREATE DATABASE test_db;选择创建表的数据库,SQL语句如下:USE test_db;创建tb_emp1表,SQL语句为:CREATE TABLE tb_emp1(id INT(11),name VARCHAR(25),deptId INT(11),转载 2015-11-18 12:08:02 · 688 阅读 · 1 评论 -
MySQL:触发器
【例11.1】在t表格上创建一个名为view_t的视图,代码如下:首先创建基本表并插入数据,语句如下:CREATE TABLE t (quantity INT, price INT);INSERT INTO t VALUES(3, 50);创建视图语句为:CREATE VIEW view_t AS SELECT quantity, price, quantity *price转载 2015-11-18 12:18:18 · 388 阅读 · 0 评论 -
MySQL:存储过程和函数
【例10.1】创建查看fruits表的存储过程,代码如下:CREATE PROCEDURE Proc() BEGIN SELECT * FROM fruits; END ;这行代码创建了一个查看fruits表的存储过程,每次调用这个存储过程的时候都会执行SELECT语句查看表的内容,代码的执行过程如下: DELIMITER // CREAT转载 2015-11-18 12:16:19 · 1445 阅读 · 1 评论 -
SqlServer:几种分页查询语句
高效的SQLSERVER分页查询(推荐)Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2第一种方原创 2015-11-06 10:43:03 · 748 阅读 · 1 评论 -
MySQL:没有密码登录MySQL
转载 2015-11-06 10:22:47 · 1000 阅读 · 0 评论 -
MySQL:union、view、字符集
转载 2015-11-06 10:21:44 · 446 阅读 · 0 评论 -
MySQL:union、left join
转载 2015-11-06 10:19:12 · 441 阅读 · 0 评论 -
MySQL:建表及字段类型选取
转载 2015-11-06 10:17:22 · 2131 阅读 · 1 评论 -
MySQL:存储引擎
转载 2015-11-06 10:15:27 · 264 阅读 · 0 评论 -
MySQL:查询语句大全
转载 2015-11-04 14:22:45 · 391 阅读 · 1 评论 -
MySQL:用户管理
【例13.1】使用root用户登录到本地mysql服务器的test库中mysql -uroot -p -hlocalhost test【例13.2】使用root用户登录到本地mysql服务器的test库中,执行一条查询语句mysql -uroot -p -hlocalhost test -e "DESC person;"【例13.3】使用CREATE USER创建一个用户,转载 2015-11-18 12:19:05 · 1242 阅读 · 0 评论 -
MySQL:性能优化
【例16.1】使用EXPLAIN语句来分析一个查询语句EXPLAIN SELECT * FROM fruits;【例16.2】下面是查询语句中不使用索引和使用索引的对比。EXPLAIN SELECT * FROM fruits WHERE f_name='apple'; /*分析未使用索引时的查询情况*/CREATE INDEX index_name ON fruits(f_转载 2015-11-18 12:22:14 · 321 阅读 · 0 评论 -
MySQL:数据类型和运算符
【例5.1】创建表tmp1,其中字段x、y、z、m、n数据类型依次为TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL语句如下:CREATE TABLE tmp1 ( x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT );执行成功之后,便用DESC查看表结构,结果如下:DESC tmp1;转载 2015-11-18 12:09:09 · 905 阅读 · 0 评论 -
MySQL:数据备份与还原
/***************************样例表***************************/CREATE DATABASE booksDB;user booksDB;CREATE TABLE books( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, c转载 2015-11-18 12:19:54 · 1259 阅读 · 0 评论 -
MySQL:索引
【例9.1】在book表中的year_publication字段上建立普通索引,SQL语句如下:CREATE TABLE book(bookid INT NOT NULL,bookname VARCHAR(255) NOT NULL,authors VARCHAR(255) NOT NULL,转载 2015-11-18 12:15:25 · 938 阅读 · 0 评论 -
MySQL:插入、更新与删除数据
本章将使用样例表person,创建语句如下:CREATE TABLE person(id INT UNSIGNED NOT NULL AUTO_INCREMENT,name CHAR(40) NOT NULL DEFAULT '',age INT NOT NULL DEFAULT 0,info CHAR(50) NULL,PRIMARY KEY (转载 2015-11-18 12:14:30 · 1954 阅读 · 0 评论 -
MySQL:MySQL Replication
[17.2.2] Windows环境下实现主从复制步骤1: 在Windows操作系统下安装好两台主机的MySQL服务器,配置好两台主机的IP地址,实现两台计算机可以网络连通。步骤2: 看下datadir的具体的路径。mysql> show variables like '%datadir%';步骤3: 编译C:\Documents and Settings\All Us转载 2015-11-18 12:23:05 · 344 阅读 · 0 评论 -
MySQL:MySQL的一些客户端工具
navicatsqlyogmysql query browserphpmyadmin,网页版mysql workbenchmysql dumper原创 2015-11-18 12:29:53 · 610 阅读 · 1 评论 -
MySQL:MySQL+Cluster
[19.2] Linux环境下MySQL Cluster安装和配置步骤1: 系统默认的网卡端口是eth0,这里使用的是eth2,首先编辑eth2的配置文件,设置IP地址、子网掩码和网关的配置信息。[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# vi if转载 2015-11-18 12:24:22 · 439 阅读 · 0 评论