MySQL
文章平均质量分 86
utf7
微信公众号: yechaotalk ,大数据、云计算
https://github.com/utf7
展开
-
MySQL InnoDB四个事务级别 与 脏读、不重复读、幻读
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的原创 2014-05-26 19:32:10 · 12499 阅读 · 3 评论 -
误用autocommit引起的业务hang住
背景有用户报告一个普通的select 语句被hang住了,执行超时。查明之后发现是autocommit使用不当导致。这里将case简化,说明复现步骤及原因。复现session1 建表并插入数据:create table if not exists t(id int primary key, c int);set autocommit=0;insert i转载 2014-05-27 17:40:21 · 1067 阅读 · 0 评论 -
关于MySQL变量innodb_rollback_on_timeout一些讨论
作者:MrDB 出处:http://www.cnblogs.com/hustcat/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。关于MySQL变量innodb_rollback_on_timeout一些讨论1、innodb_rollback_on_timeout变量转载 2014-05-22 14:30:30 · 1925 阅读 · 0 评论 -
MySQL的timeout那点事
http://www.penglixun.com/tech/database/mysql_timeout.html本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/mysql_timeout.html因为最近遇到一些超时的问题,正好就转载 2014-06-04 17:26:59 · 1224 阅读 · 0 评论 -
合理运用remapResults属性
转自:http://sinokaka.iteye.com/blog/39367Proper Usage of remapResults="true"The remapResults attribute is available on 【statement】, 【select】, and 【procedure】 mapped statements. It is an optional转载 2013-12-18 18:30:09 · 973 阅读 · 0 评论 -
深入理解JDBC的超时设置
转自:http://www.importnew.com/2466.html ImportNew注: 本文由新浪微博:@哥墨迹 投稿至ImportNew。感谢 @哥墨迹 ! 如果你希望分享好的原创文章或者译文,欢迎投稿到ImportNew。恰当的JDBC超时设置能够有效地减少服务失效的时间。本文将对数据库的各种超时设置及其设置方法做介绍。 真实案例:应用服务器在遭到DDo转载 2013-12-17 10:29:43 · 1139 阅读 · 0 评论 -
Fastest way to estimate rows in a table
Fastest way to estimate rows in a tableA friend wrote to me recently with a question. He was working on a method to ship application metrics to statsd on a 1 minute interval. He had three exampl转载 2013-12-13 09:59:30 · 887 阅读 · 0 评论 -
MySQL删除数据什么情况下会释放空间
今天被问 MySQL delete 以后磁盘空间什么时候释放。当时回答是:delete 以后释放。后来一想,总觉得好像说错了,以前在哪看到oracle的实现不是这样的。MySQL应该也大致相同于是就去测试了一下。结果果然不是这样的。对于MySQL delete以后并不会释放磁盘空间。而是看情况?下面就是我测试以后得出的几种情况:1、drop原创 2014-06-12 15:41:02 · 14740 阅读 · 2 评论 -
给MySQL表增加指定位置的列
ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST给表添加列是一个常用的操作,MySQL增加列的时候可以指定此列的位置给指定位置加列需要两个关键字:FIRST和AFTERFIRST表示增加此列为第一个列AFTER表原创 2014-09-04 13:59:20 · 40383 阅读 · 0 评论 -
MySQL存储过程----创建索引前,先判断索引是否已经存在,如果存在,则不添加,如果不存在,添加
USE xxx_db;/* 一、 * 安全创建索引的存储过程: * 首先判断索引是否存在,如果已经存在则不创建,如果不存在,则创建。 * 防止索引已经存在,创建出错和删除索引重复创建原来的索引带来的开销浪费 * * 参数说明: * p_dbname : 数据库名称 * p_tablename : 表名称 * p_idxname : 索引名称 * p_index : 索引名称原创 2013-06-09 10:56:03 · 9475 阅读 · 0 评论 -
在Navicat 中写MySQL存储过程的一个坑
今天在Navicat上写了一个存储过程,然后运行执行都没有什么问题,可是部署执行的时候总是有问题。后来在navicat上又仔细看了很久。还是没问题,执行了也没问题。进linux mysql -uxxx -pxxx执行,还是报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual原创 2013-06-09 10:53:20 · 13583 阅读 · 8 评论 -
Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
大家都知道当插入大批量数据MySQL的时候,MySQL使用load data local infile 从文件中导入数据比insert语句要快,MySQL文档上说要快20倍左右。但是这个方法有个缺点,就是导入数据之前,必须要有文件,也就是说从文件中导入。这样就需要去写文件,以及文件删除等维护。某些情况下,比如数据源并发的话,还会出现写文件并发问题,很难处理。那么有没有什么办法,可以原创 2013-07-03 20:50:15 · 17522 阅读 · 8 评论 -
正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
昨天在项目中需要对日志的查询结果进行导出功能。日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出。由于日志数据量比较大。多的时候,有上亿条记录。之前的解决方案都是多次查询,然后使用limit 限制每次查询的条数。然后导出。这样的结果是效率比较低效。那么能不能一次查询就把所有结果倒出来了?于是我就使用一次查询,不使用limit分页。结果出现java原创 2013-07-11 20:11:26 · 41512 阅读 · 11 评论 -
MySQL分组然后取每个分组中按照某些字段排序的topN条数据
MySQL分组然后取每个分组中按照某些字段排序的topN条数据建表CREATE TABLE `t` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL, `itime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UP原创 2014-12-04 19:41:42 · 7209 阅读 · 0 评论 -
测试你对MySQL事务与隔离级别的理解的一道题
有如下表:create table t(a int)engine=innodb,charset=utf8有如下两个客户端:原创 2014-12-08 16:07:38 · 1886 阅读 · 0 评论 -
CentOS查看打开文件数和文件操作符
CentOS查看打开文件数和文件操作符比如查看mysql文件句柄占用情况: ps -ef|grep mysql找到pid ls /proc/3313/fd/ -l 查看某个进程的文件句柄使用 ,3313为pid ls /proc/3313/fd/ -l> /tmp/filesdesc.log 将原创 2013-08-26 22:01:06 · 6613 阅读 · 0 评论 -
Java JDBC下执行SQL的不同方式、参数化预编译防御 相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51
Java JDBC下执行SQL的不同方式、参数化预编译防御相关学习资料http://zh.wikipedia.org/wiki/Java数据库连接http://lavasoft.blog.51cto.com/62575/20588http://blog.csdn.net/cxwen78/article/details/6863696http://www.ibm转载 2014-10-15 11:20:18 · 1555 阅读 · 1 评论 -
MySQL Master-Slave 主从复制环境搭建
一、首先准备两个MySQL环境。二、关闭linu原创 2014-10-09 21:22:50 · 1125 阅读 · 0 评论 -
Back of the Envelope Calculations
Back of the Envelope CalculationsOne of the best DBA questions I was ever asked in an interview, was to try and estimate required disk space for an application using a back-of-the-envelope calcula转载 2013-12-13 15:47:53 · 1727 阅读 · 0 评论 -
mysql-锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level转载 2013-06-27 12:46:59 · 944 阅读 · 0 评论 -
面向程序员的数据库访问性能优化法则
面向程序员的数据库访问性能优化法则 特别说明:1、 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、 本文未深入数据库优化中最核心的执行计划分析技术。 读转载 2013-07-11 20:24:57 · 1233 阅读 · 0 评论 -
关于oracle与mysql官方jdbc的一些区别
关于oracle与mysql官方jdbc的一些区别 描述mysqloraclejdbc驱动 驱动下载地址:http://dev.mysql.com/downloads/connector/j/驱动类型:TYPE4最新版都声称支持JDBC4.0标准驱动转载 2013-07-11 20:13:51 · 11086 阅读 · 1 评论 -
Best practices to improve performance in JDBC
Best practices to improve performance in JDBCThis topic illustrates the best practices to improve performance in JDBC with the following sections:Overview of JDBCChoosing the right Driver转载 2013-07-10 23:21:31 · 1638 阅读 · 0 评论 -
[转载]PostgreSQL可以弥补MySQL数据库的哪些缺点
PostgreSQL由于是类似Oracle的多进程框架,所以能支持高并发的应用场景,这点与Oracle数据库很像,所以把Oracle DBA转到PostgreSQL数据库上是比较容易的,毕竟PostgreSQL数据库与Oracle数据库很相似。同时,PostgreSQL数据库的源代码要比MySQL数据库的源代码更容易读懂,如果团队的C语言能力比较强的知,就能在PostgreSQL数据库上做开发转载 2013-07-11 12:25:06 · 1005 阅读 · 0 评论 -
MySQL的Join使用
在MySQL(以5.1为例)中,表连接的语法可以参见MySQL官方手册:MySQL官方手册-JOIN在查询中,连接的语法类似[sql] view plaincopySELECT select_expr FROM table_references [sql] view plaincopy转载 2013-06-20 20:25:27 · 946 阅读 · 0 评论 -
遇到瓶颈和性能问题,不要掉进别人的坑中,而是想想自己做的话,怎么做。
通则思变,不变则亡。换个思路,问题迎刃而解。如果遇到了某些问题,不需要去看别人怎么实现的,而是想一下,如果自己做怎么办。应该是怎样?这样的话,某些问题就会有突破,迎刃而解。而不是思维定势丢进之前别人埋下的坑中,爬不出来。对于处理性能和瓶颈问题上,此方法发现真的很实用。最近在工作中,遇到了个严重的性能问题。一直觉得没有办法解决,为什么没有办法解决呢?原创 2013-05-31 23:07:24 · 1210 阅读 · 0 评论 -
调节和优化MySQL
MySQL 服务器硬件和操作系统调节: 1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpens转载 2013-08-22 12:49:39 · 815 阅读 · 0 评论 -
PostgreSQL与MySQL比较
特性MySQLPostgreSQL实例通过执行 MySQL 命令(mysqld)启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进程(pg_ctl)启动实例。一个实例可以管理一个或多个数据库,这些数据库组成一个集群。集群是磁盘转载 2013-08-24 23:18:16 · 810 阅读 · 0 评论 -
When does MySQL data get loaded in and out of cache?
When does MySQL data get loaded in and out of cache?A cold cache, or a poorly tuned cache can be responsible for a number of performance problems. If we look at the data and indexes of InnoDB, the转载 2013-12-13 10:28:46 · 834 阅读 · 0 评论 -
MySQL数据库InnoDB数据恢复工具使用总结
本文从实际使用经验出发,介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。以下内容大部分参考自:Percona Data Recovery转载 2013-11-19 16:31:45 · 1591 阅读 · 0 评论 -
MySQL启动错误一例 idata1与my.cnf innodb_data_file_path = ibdata1:XX:autoextend不一致造成的错误
一个MySQL InnoDB 共享表空间与my.cnf innodb_data_file_path = ibdata1:XX:autoextend不一致造成的错误INNOB 启动错误:错误日志:120310 22:22:18 mysqld_safe mysqld from pid file /data/db-data/localhost.localdomain.pid原创 2013-10-17 20:19:44 · 4570 阅读 · 0 评论 -
MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
最近项目中遇到有人使用DEFINER这样的关键字,找了半天没有怎么理解这个意思。以为是限制谁使用这个存储过程,后来测试发现并不是这样。搜索网上发现很多说法都不正确。看到一篇博客,做了如下介绍,才有所理解。原来是这样。由于记录一下,转载过来。1. MySQL的用户名都是username@hostname的形式2. 授权用户的命令: mysql >grant all priv转载 2013-09-03 12:37:17 · 3425 阅读 · 0 评论 -
设计高效SQL: 一种视觉的方法
这篇文章是关于SQL SERVER的,但仍有参考价值。http://www.simple-talk.com/sql/p ... -a-visual-approach/Designing Efficient SQL: A Visual Approach25 February 2010by Jonathan Lewis设计高效SQL: 一种视觉的方法人们提到转载 2013-08-16 12:41:56 · 849 阅读 · 0 评论 -
MySQL Timeout解析
“And God said, Let there be network: and there was timeout”在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?本期Out-man,讲述咱们MySQL DBA自己的Timeout。先看一下比较常见的Timeout参数和相关解释:转载 2013-08-13 12:28:59 · 712 阅读 · 0 评论 -
MySQL Performance: Linux I/O
MySQL Performance: Linux I/OIt was a long time now that I wanted to run some benchmark tests to understand better the surprises I've met in the past with Linux I/O performance during MySQL benchmark转载 2013-08-24 17:51:48 · 1205 阅读 · 0 评论