
数据库技术
czp11210
长期专注在车载物联网领域,智慧交通行业;精通C/C++、Java、JavaScript等高级语言;钟情于各种开源技术框架,先后参与过各大航空公司的会员、交易、结算等业务体系开发,主持过移动快速开发平台的建设。
展开
-
MySql deadlock
执行SHOW ENGINE INNODB STATUS遍历 SHOW ENGINE INNODB STATUSLATEST DETECTED DEADLOCK------------------------2017-09-02 12:16:36 7f425dd25700*** (1) TRANSACTION:TRANSACTION 464821461原创 2017-09-02 12:44:26 · 1932 阅读 · 0 评论 -
SQL解析过程详解
摘要作者:一帅 简介 SQL任务是ODPS中使用最频繁的一类作业,大部分用户开始使用ODPS时要做的第一件事情就是学习怎么写ODPS的SQL。ODPS SQL是一种非常灵活的语言,兼容大部分的SQL92规范,也对大规模计算场景做了一些特别的定制。有些用户写出的SQL让人看了之后茅塞...作者:一帅简介SQL任务是ODPS中使用最频繁的一类作业,大部分用户开始使用ODPS转载 2016-04-30 12:09:08 · 16202 阅读 · 1 评论 -
基于AST抽象语法树的SQL注入检测 (2) -- 每周小结(01-02~01-08) - .Little Hann
本周继续学习AST的SQL语法检测原理的学习,文章的接下来部分准备分为2部分进行学习:1. SQL注入语法防御规则2. druid中SQL注入防御模块sql-wall1. 相关学习资料http://code.alibabatech.com/wiki/display/Druid/WallFilterhttp://code.alibabatech.com/wiki转载 2016-04-30 12:07:01 · 4704 阅读 · 0 评论 -
MySql 内存表(engine=heap)
MySql 内存表使用内存表使用哈希散列索引把数据保存在内存中,因此具有极快的速度,适合缓存中小型数据库,但是使用上受到一些限制,以下是蓝草使用的一些感受。1、heap对所有用户的连接是可见的,这使得它非常适合做缓存。2、仅适合使用的场合。heap不允许使用xxxTEXT和xxxBLOB数据类型;只允许使用=和操作符来搜索记录(不允许、=);不支持auto_incremen转载 2016-05-24 18:23:45 · 7578 阅读 · 0 评论 -
Creating real time web GIS applications - part2
Creating real time web GIS applications - part2Date: Jan. 21, 2014, 12:35 p.m. Author: Ivan PasicCategory: GIS In my last article I was speaking about creating real-time web gis ap转载 2016-03-31 17:06:29 · 501 阅读 · 0 评论 -
Amoeba For MySQL入门:实现数据库水平切分
当系统数据量发展到一定程度后,往往需要进行数据库的垂直切分和水平切分,以实现负载均衡和性能提升,而数据切分后随之会带来多数据源整合等等问题。如果仅仅从应用程序的角度去解决这类问题,无疑会加重应用程度的复杂度,因此需要一个成熟的第三方解决方案。Amoeba正是解决此类问题的一个开源方案,Amoeba位于应用程序和数据库服务器之间,相当于提供了一个代理,使得应用程序只要连接一个Amoeba,相转载 2016-03-07 22:52:36 · 1174 阅读 · 0 评论 -
Mysql 基于 Amoeba 的 水平和垂直 分片
环境:Servers Amoeba Server (Linux): 192.168.14.129Mysql 1 Server (Linux): 192.168.14.131Mysql 2 Server (Linux): 192.168.14.133 Clients Mysql GUI Tools (Windows): 19转载 2016-03-07 22:42:46 · 1910 阅读 · 0 评论 -
Mysql事务及行级锁的理解
在最近的开发中,碰到一个需求签到,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当属表设计的时候,每个用户签到一次,即向表中插入一条记录,根据记录的数量和时间来判断用户当天是否签到。这样的话就会有一个问题, 如果是在网速过慢的情况下,用户多次点击签到按钮,那么变会发送多次请求,可能会导致一天多次签到,重复提交的问题 ,那么很自然的想到用事务。这次用的是 spring转载 2016-03-05 11:42:40 · 7867 阅读 · 1 评论 -
dbcp重连问题排查
使用数据库连接池时,免不了会遇到断网、数据库挂掉等异常状况,当网络或数据库恢复时,若无法恢复连接池中的连接,那必然会是一场灾难。 关于dbcp的自动重连配置,网上相关的资料也不少,通过以下资料,并对照官方文档中的参数说明,大致能了解各项配置的含义,我就不冗诉了,本文的目的主要是对问题排查的经过做个简单的记录。 参考资料: 解读dbcp自动重连那些事官方文档测试环境:转载 2015-12-11 16:20:02 · 1257 阅读 · 0 评论 -
PostgreSQL下安装pg_stat_statements
安装过程如下:进入安装包的contrib/pg_stat_statements目录,执行编译和安装动作:[root@server pg_stat_statements]# pwd/soft/postgresql-9.1.2/contrib/pg_stat_statements[root@server pg_stat_statements]# make && make install转载 2015-02-06 09:42:20 · 2699 阅读 · 0 评论 -
PostgreSQL的pg_stats学习
对于pg_stas,说明文档在这里:http://www.postgresql.org/docs/9.1/static/view-pg-stats.html下面做一个实验:先建立一个表postgres=# create table test(id integer);CREATE TABLEpostgres=# \xExpanded display is on.转载 2015-02-06 09:45:27 · 1506 阅读 · 0 评论 -
MySQL 对于千万级的大表要怎么优化?
作者:哈哈链接:http://www.zhihu.com/question/19719997/answer/81930332来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。很多人第一反应是各种切分;我给的顺序是:第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制转载 2016-05-12 23:44:43 · 1685 阅读 · 0 评论 -
为写入性能优化:Redis
从表面上看,众多的分布式数据库似乎涵盖了许多相同的用例。因此,当试图选择一个非关系数据库解决方案时,新手们往往困惑不已。事实上,这些流行的非关系数据库往往偏执于某一方面。有些为了能便于分布到多台机器上而以牺牲数据一致性为代价。其他一些则专注于提高数据读写速度。当你在多个非关系数据库中做选择时,你也必须坚持自己的主见。选择数据库最重要的目标是了解你具体的使用情况。作为例子,让我们试图明确我们转载 2016-05-27 15:42:31 · 4594 阅读 · 0 评论 -
Mysql取某个范围内随机日期 FLOOR和LPAD
SELECT FLOOR(7 + (RAND() * 6)); 取7到12的随机整数,包括7到12SELECT FLOOR(12+(rand()*13)); 取12到24的随机整数,包括12到24LPAD(FLOOR(0 + (RAND() * 23)),2,0) 取0-24之间的随机数,不够2位的前补0格式 : 2008-12-11 17:43:11转载 2016-05-14 18:02:58 · 1064 阅读 · 0 评论 -
MYSQL优化配置
MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。MYSQL 如此方便和稳定,以至于我们在开发 WEB 程序的时候很少想到它。即使想到优化也是程序级别的,比如,不要写过于消耗资源的 SQL 语句。但是除此之外转载 2017-03-07 17:19:52 · 435 阅读 · 0 评论 -
Mysql 1秒200笔GPS数据批量写入优化
针对1100台车上传GPS数据实测,平均每小时300M日志,每小时1000w笔GPS数据,发现IO负载过高1.优化:mysql优化2.优化:使用sharding-jdbc分表3.top查询load average 负载较低,wa 磁盘读写等待降到0.14.iotop查找耗损IO的进程原创 2017-03-09 12:35:42 · 2817 阅读 · 0 评论 -
SSD 下的 MySQL IO 优化
二 背景在阅读这篇文章之前,读者需要注意的是,为了维护隐私,用 MySQL 服务器的 D 段代替完整 IP,并且略去一些私密信息。A 项目,因 I/O 出现规律性地剧烈波动。每 15 分钟落地一次,innodbBuffPoolPagesFlushed 参数监控波峰和波谷交替出现,磁盘 I/O 同样如此,并且 until 达到 100%。经过排查,排除了触发器、事件、存储过程、前转载 2017-03-09 10:39:06 · 885 阅读 · 0 评论 -
CentOS用yum安装、配置MariaDB
mariadb yum 仓库:https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna&distro=RedHat&distro_release=rhel6-amd64--rhel6&version=10.01.创建/etc/yum.repos.d/MariaDB.repo文件,这里用到了刚刚发布正式版的10.0转载 2017-01-06 19:13:31 · 438 阅读 · 0 评论 -
SQL Server 2008 R2 主从数据库同步
一、准备工作:主数据库服务器:OS:Windows Server 2008 R2 DB: SQL Server 2008 R2Hostname : CXMasterDB IP: 192.168.1.224/24 dg: 192.168.1.1DNS: 192.168.1.19 DNS: 202.96.209.133从数据库服务器:转载 2016-11-05 16:56:48 · 8010 阅读 · 1 评论 -
[MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
1. 准备创建一个测试表:mysql> CREATE TABLE `t` (`d1` int(10) unsigned NOT NULL default '0',`d2` timestamp NOT NULL default CURRENT_TIMESTAMP,`d3` datetime NOT NULL,KEY `d2` (`d2`),KEY `d1` (`d1`),KE原创 2016-05-16 21:06:45 · 3427 阅读 · 1 评论 -
MySQL查询不使用索引汇总
众所周知,增加索引是提高查询速度的有效途径,但是很多时候,即使增加了索引,查询仍然不使用索引,这种情况严重影响性能,这里就简单总结几条MySQL不使用索引的情况如果MySQL估计使用索引比全表扫描更慢,则不使用索引。例如,如果列key均匀分布在1和100之间,下面的查询使用索引就不是很好:select * from table_name where key>1 and key如果使用MEM转载 2016-05-16 15:35:03 · 2947 阅读 · 0 评论 -
PostgreSQL 锁等待跟踪
摘要PostgreSQL 在打印LONG SQL时,锁等待的时间也会算在内,并且目前在日志中没有将锁等待的时间单独打印出来。 shared_preload_libraries='auto_explain' auto_explain.log_min_duration='1s' auto_explai...PostgreSQL 在打印LONG SQL时,锁等待的时间也会算在内,并且目前在日转载 2016-05-05 10:24:31 · 3285 阅读 · 0 评论 -
postgresql 死锁问题解决记录
--查询阻塞的sql( 死锁了,没有执行通过的sql )select * from pg_stat_activity aa,(select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname from pg_locks a join pg_class b on a.relation=b.oid where转载 2016-05-05 10:24:02 · 9886 阅读 · 0 评论 -
MySQL SQL优化
有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧。注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础。 优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是转载 2016-05-14 19:54:47 · 538 阅读 · 0 评论 -
pgpool + postgres 读写分离配置(3)
配置 pgpool.conf就像之前说的,每种操作模式在 pgpool.conf 文件中有它对应的配置项。一个 $prefix/etc/pgpool.conf.sample 文件在 pgpool-II 安装时已经被创建。重命名这个文件为 pgpool.conf 并修改它的内容。cp $prefix/etc/pgpool.conf.sample $prefix转载 2015-02-04 15:22:20 · 4938 阅读 · 0 评论 -
pgpool + postgres 读写分离配置(4)
必须按照的操作 必须是已经按照postgresql下载并安装pgpool===================================主机上安装==========================wget http://www.pgpool.net/mediawiki/images/pgpool-II-3.1.2.tar.gz转载 2015-02-04 15:39:36 · 2493 阅读 · 0 评论 -
快速开启MySQL慢日志查询的方法
MySQL慢日志查询对于很多刚接触MySQL数据的新人来说比较陌生,下面就为您介绍MySQL慢日志查询的用法和好处,供您参考。 mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的 打开 my.ini ,找到 [mysqld] 在其下面添加 long_query_time = 2log-slow-querie转载 2013-06-19 09:31:26 · 770 阅读 · 0 评论 -
Mysql的表分区
一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。 二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:转载 2013-06-18 16:49:40 · 751 阅读 · 0 评论 -
在应用层通过spring解决数据库读写分离
本文章转自:http://www.iteye.com/topic/1127642如何配置mysql数据库的主从?单机配置mysql主从:http://my.oschina.net/god/blog/496 常见的解决数据库读写分离有两种方案1、应用层http://neoremind.net/2011/06/spring实现数据库读写分离目前的一些解决方案需要在程序中手动转载 2013-06-18 09:36:14 · 7422 阅读 · 2 评论 -
mongodb与mysql相比的优缺点
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例 如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延 迟。他们需要的是一个“大约转载 2013-06-17 09:45:11 · 2367 阅读 · 0 评论 -
使用 ReplicationConnection 连接 Master/Slave 实现负载均衡
从JDBC驱动程序Connector/J 3.1.7 开始,我们提供了一个JDBC驱动’变体’。它能够通过Connection.getReadOnly()返回的状态,自动向可读写的Master数据提交查询语句,进行错误恢复及在Slaver数据库集间实现负载均衡。 应用程序通过调用Connection.setReadOnly(true)将事务设为只读,这将使事务被提交到那些通过轮转调度实现负转载 2013-05-31 15:36:42 · 806 阅读 · 0 评论 -
通过数据库引擎来加速MySQL数据库
如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的话,你甚至可以使用MySQL++ API来创建自己的数据库引擎,就像打穿气缸装上自己的化油转载 2013-05-31 09:52:23 · 666 阅读 · 0 评论 -
dbunit简单介绍
相信做过单元测试的人都会对JUnit 非常的熟悉了,今天要介绍的DbUnit(http://dbunit.sourceforge.net/ ) 则是专门针对数据库测试的对JUnit 的一个扩展,它可以将测试对象数据库置于一个测试轮回之间的状态。鉴于目前国内介绍DbUnit 的系统教程比较少见,本文将分从理论和实例两个方面带你领略DbUnit 的精彩世界。DbUnit 设计理念熟悉单元测试的转载 2013-04-28 22:47:50 · 1340 阅读 · 0 评论 -
oracle与mysql性能对比
MySQL VS Oracle MySQL和Oracle相信大家都不陌生,这篇文章来对他们做个压力测试。1:服务器环境操作系统:Red Hat Enterprise Linux Server release 5.5 (Tikanga)CPU:Intel(R) Xeon(R) CPU E5607 @ 2.27GHz 8核内存:16G转载 2013-04-08 11:46:30 · 45303 阅读 · 6 评论 -
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
iBATISMySQL应用服务器框架互联网第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机转载 2011-12-29 17:44:45 · 748 阅读 · 0 评论 -
使用Amoeba Aladdin连接Oracle数据库
Amoeba是一个数据库代理,用他可以完成数据库Replication,Sharding,读写分离等等。Amoeba本身最适合mysql数据库,但是使用Amoeba Aladdin也可以链接其他支持jdbc的数据库。对于mysql数据库的配置,amoeba的官方文档有比较详细的介绍,但是对于aladdin很不详细(那个官方文档好像是根本没写完的样子)。经过一番摸索,配置了用amoeba连接Orac转载 2014-04-29 16:42:12 · 2228 阅读 · 2 评论 -
ORACLE分页查询SQL语法——最高效的分页
原文地址:ORACLE分页查询SQL语法——最高效的分页作者:黄瓜园儿author:XIAOHUI_LIAO ---from:http://blog.youkuaiyun.com/XIAOHUI_LIAO/article/details/1759990 --1:无ORDER BY排序的写法。(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影转载 2014-04-17 20:34:27 · 1428 阅读 · 0 评论 -
基于SymmetricDS的多主一从数据库同步方案
团队最近有个数据同步的需求,大致是两台或以上的数据库(MariaDB)服务器走VPN通道与一台数据库进行数据同步,先不关心VPN通道通迅的问题,对于这种多主一从的数据同步需求,也曾尝试通过MySQL本身的复制功能配置实现,但貌似不管是MySQL还是MariaDB目前都还没有实现多主一从的复制方案(官方说MariaDB从10.0开始支持,等到花儿都谢了)。初步确定两种方案:转载 2014-05-08 15:47:23 · 2560 阅读 · 2 评论 -
pgpool + postgres 读写分离配置(2)
192.168.1.108 主数据库(master)192.168.1.109 备份的数据库 CREATE DATABASE locker WITH ENCODING='UTF8' CREATE ROLE locker LOGIN ENCRYPTED PASSWORD 'locker' SUPERUSER A转载 2015-02-04 15:17:23 · 4107 阅读 · 0 评论 -
pgpool + postgres 读写分离配置(5)
0. chown postgres:postgres /usr/pgpool 1.进入pgpool的etc目录 cd /usr/pgpool/etc/2.拷贝配置 cp pgpool.conf.sample-stream pgpool.conf3.编辑参数 vi pgpool.conf转载 2015-02-04 15:40:15 · 4212 阅读 · 0 评论