MYSQL
文章平均质量分 80
freedom5112
这个作者很懒,什么都没留下…
展开
-
mysql存储过程详解
mysql存储过程详解1.存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊转载 2012-12-23 22:39:54 · 511 阅读 · 0 评论 -
mysql 全面优化总结(1)
MySQL的优化 一、我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 二、优化硬件 如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构, 像Alpha、Sparc 或即将推出的IA64。因为MySQL内部使用大量64位的整数,64位的CPU将提供更好的性能。 对大数据库,转载 2012-12-23 23:36:10 · 547 阅读 · 0 评论 -
关于mysql 打开文件描述符的计算及其open_files_limit 和官网描述不一致的情况
转自:http://imysql.cn/2008_04_18_how_mysql_calculate_open_files一、试验从手册的"6.4.8. How MySQL Opens and Closes Tables"可以了解到,每打开一个MyISAM表,就需要使用2个文件描述符,咱们来验证一下。1. 重启mysqld/etc/init.d/mysql re转载 2012-12-13 17:08:45 · 1298 阅读 · 0 评论 -
mysql 自编译安装2.0
转自:http://www.penglixun.com/tech/database/mysql_compile_reference.html原文:http://www.mysqlops.com/2011/03/06/mysql_compile_reference.html一般情况下,用户选择的MySQL安装方式为 RPM包 或 二进制压缩包,但是,通用安装包为了适应不同的软硬件平台转载 2012-12-13 19:41:25 · 733 阅读 · 0 评论 -
mysql InnoDB的Master Thread调度流程
InnoDB的主要IO操作都是在Master Thread(srv0srv.c)中完成的,所以分析InnoDB的IO调度,就一定要分析Master Thread线程。下面是我画的一张流程图,标识了整个Master Thread的调度流程。红色部分是InnoDB Plugin/XtraDB对原有InnoDB引擎的改进。每个Process文字中最下面的括号是进行这个操作的具体函数,可以参照转载 2012-12-13 20:12:00 · 817 阅读 · 0 评论 -
MySQL5.5数据库my.cnf配置文件模板
5.5的配置文件,在很早以前就有了一个初稿,当初可是相当的简陋。后来决定把这个东西分享给大家,于是下了大决心仔细修改,期望达成:即使是刚接触MySQL不久,也能用这个模板配置出可以一用的配置文件。期间来来回回各种调整,花了相当长的时间才完成。直接导致5.5参数的翻译,和bug测试都停滞不前,不过这个配置文件模板完成度很高,一切的付出都是值得的。需要说明的一些东西是:1.这个配置文件转载 2012-12-26 18:23:36 · 1089 阅读 · 0 评论 -
mysql innodb 如何获取用于 生成执行计划的 数据表统计信息
本文主要记录本人对innodb获取用于优化的统计信息代码的阅读与理解。1. 背景信息 当mysql服务端接收到客户端请求之后,它会对用户的sql语句进行解析,优化,和执行。 其中优化是mysql中最复杂的一块代码之一。 它主要的功能是生成高效的执行计划。 所谓的执行计划,就是对查询相关表的使用顺序,以及对每个表使用哪种方式进行数据操作。 打个比方,假设i转载 2012-12-16 11:38:09 · 959 阅读 · 0 评论 -
mysql delete 语法详解
以下的文章主要描述的是MySQL DELETE语法的详细解析,首先我们是从单表语法与多表语法的示例开始的,假如你对MySQL DELETE语法的相关内容十分感兴趣的话,你就可以浏览以下的文章对其有个更好的了解。单表语法:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORD转载 2012-12-19 11:01:30 · 616 阅读 · 0 评论 -
MySQL压力测试工具mysqlslap
MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。–auto-generate-sql, -a自动生成测试表和数据–auto-generate-sql-load-type=type测试转载 2012-12-21 10:55:58 · 503 阅读 · 0 评论 -
Mysql innodb undo与redo (2)
CPU与Mem,Mem与Disk一级一级的速度差别,使得我们不断寻找可以提高速度的方式;例如,页面速度的提高:使用squid、varnish、nginx cache等页面缓存提高页面的访问速度,使用memcache等数据缓存提高应用层访问速度。数据库怎么减少离散磁盘读写,提高数据访问速度。oracle 从i到g都在不断优化(之间是回滚段到回滚表空间),对redo和undo日志的利用转载 2013-01-23 14:28:30 · 2344 阅读 · 0 评论 -
mysql子查询的弱点
转自:http://hidba.org/?p=260mysql的子查询的优化不是很友好,一直有受业界批评比较多.关于mysql的查询有两个知识点:第一个为mysql在处理所有的查询的时候都强行转换为联接来执行,将每个查询包括多表中关联匹配,关联子查询,union,甚至单表的的查询都处理为联接,接着mysql执行联接,把每个联接在处理为一个嵌套循环(oracle-nest-l转载 2013-01-23 19:28:24 · 938 阅读 · 0 评论 -
曾用于内部培训的PPT内容:MySQL开发规范与实用技术交流
转自:http://www.mysqlops.com/2011/05/25/mysql-training-ppt.html转载 2013-01-23 20:13:25 · 1011 阅读 · 0 评论 -
mysql中的seconds_behind_master的理解
花了一个下午时间,翻了不少文章,说下自己对mysql中的seconds_behind_master的理解,下面是摘来的一篇文章:http://www.mysqlsystems.com/2011/06/two-methods-of-monitoring-slavelag-seconds_behind_master-or-mk-heartbeat.html日常工作中,对于MySQL主从转载 2013-01-23 10:35:09 · 3796 阅读 · 0 评论 -
mysql-innodb-undo和redo (1)
转自:http://blog.chinaunix.net/uid-20485483-id-3180386.html- 用Undo Log实现原子性和持久化的事务的简化过程 假设有A、B两个数据,值分别为1,2。 A.事务开始. B.记录A=1到undo log. C.修改A=3. D.记录B=2到undo log. E.修改B=4. F转载 2013-01-23 14:20:34 · 966 阅读 · 0 评论 -
数据切片思路随聊
P:今天我们聊一下关于数据切片的方法S: 可以。P: 有时候我们会碰到数据量太大,单点容量无法支撑的情况;这时候我们会需要进行分库.S:嗯,是的;基于硬件成本的考虑,我们不可能一性次分库到位:一般是随着数据量的增长逐次扩容分库,P: 是的,所以在定分库方案的时候还需要考虑以后的扩容方案S:比如我们是通过USERID来进行分库:一般有两种方法:1)用D转载 2013-01-23 20:19:40 · 2774 阅读 · 0 评论 -
mysql innodb ib_logfile、bin-log与主从同步的问题
今天研究MySQL主从同步的同事问了一个问题,如果InnoDB写完ib_logfile后,服务异常关闭。会不会由于主库能够根据ib_logfile恢复数据,而由于bin-log没写导致从库同步时少了这个事务?或者反之,bin-log写成功,而ib_logfile没有写完,导致从库执行事务,而主库不执行? 这会导致主从不一致。本文简要说明下这个问题。 1、 写入转载 2013-01-23 15:20:23 · 1201 阅读 · 0 评论 -
测试快速关闭innodb的方法
Google docs 查看地址 http://docs.google.com/Doc?docid=0AR0iV03BDag2ZGRyMjI5cjdfODAxZnd6ejZ2Z3c&hl=enpdf下载地址 _mysqlporformanceblog_innodb_ (1)测试mysqlporformanceblog提供的减少关闭innodb时间的方法转载 2013-01-23 13:15:07 · 411 阅读 · 0 评论 -
InnoDB的ib_logfile写入策略
ib_logfile是InnoDB的事务日志文件。本文简要说明其写入时机、写入策略及如何保证数据安全。 1、 基本概念a) ib_logfile文件个数由innodb_log_files_in_group配置决定,若为2,则在datadir目录下有两个文件,命令从0开始,分别为ib_logfile0和ib_logfile.b)转载 2013-01-23 15:04:22 · 1071 阅读 · 0 评论 -
5.5版本中mysqldump一些改进
昨天一同学说在slave上出现Waiting for table metadata lock,metadata lock在5.5版本新加的(http://dev.mysql.com/doc/refman/5.5/en/metadata-locking.html)。metadata lock出现最多情况是一个事务中在t表进行DML时,另外一事务想对t表DDL,这时对t表DDL的事务只能等待,就会出现转载 2013-01-23 15:50:12 · 603 阅读 · 0 评论 -
mysql innodb change buffering 简单介绍
转自:http://www.dbunix.com/?p=3105线上库的alert.log中出现如下错误信息:120120 11:21:16 InnoDB: Assertion failure in thread 1133807936 in file ibuf0ibuf.c line 4233InnoDB: Failing assertion: page_get_n_recs转载 2013-01-23 16:08:15 · 2487 阅读 · 0 评论 -
mysql 误删数据恢复
数据平台开发误删数据,但是不知道具体时间点,就给了一个模糊时间,同事使用rollback逆向恢复(解析binlog产生反向SQL),我使用备份集恢复apply binlog正向恢复,尽快解决问题【原正向恢复方式】选择数据出问题时间之前最近的备份集恢复在一个新实例(restorebak.pl恢复工具支持,操作方便)将备份集pos与数据出问题pos之间的bi转载 2013-01-23 16:46:47 · 1914 阅读 · 0 评论 -
MySQL中创建及优化索引组织结构的思路
转自:http://www.mysqlops.com/2011/05/23/mysql-create-and-optimize-index.html【导读】通过一个实际生产环境中的数据存取需求,分析如何设计此存储结构,如何操纵存储的数据,以及如何使操作的成本或代价更低,系统开销最小。同时,让更多初学者明白数据存储的表上索引是如何一个思路组织起来的,希望起到一个参考模板的价值作用。转载 2013-01-23 19:59:41 · 523 阅读 · 0 评论 -
MySQL半同步Semi-sync原理介绍
MySQL半同步Semi-sync原理介绍上图先。MySQL5.5放出了第一个版本MySQL 5.5 Community Edition - Milestone Release,最大的增强莫过于加入了Semi Sync Replication的支持(虽然仍不完善)。这里做一个科普,简单介绍一下Semisynchronous Replica转载 2013-01-11 11:31:10 · 2758 阅读 · 0 评论 -
详解MyISAM Key Cache(中篇)
在前篇中介绍了Key Cache的基本机制,并且介绍了Key Cache的LRU算法。作为对LRU算法的改进,MyISAM还提供了另一个缓存算法:“Midpoint Insertion Strategy”。本文将重点介绍该算法的原理和配置。1. 相关参数该策略涉及的参数有:key_cache_division_limit、key_cache_age_threshold2.转载 2013-01-11 15:08:48 · 668 阅读 · 0 评论 -
详解MyISAM Key Cache(后篇)
在前两篇(前篇、中篇)中,分别介绍了Key Cache的基本原理(LRU和Midpoint Insertion Strategy)。最后,将介绍一些相关的参数、状态参数和命令。Key Cache的配置很灵活,可以针对全局配置,还可以针对某个单独数据表分配Key Cache的大小;如果一个数据表某部分的索引块被访问的非常频繁(较之其他索引块),那么可以配置Midpoint Inserti转载 2013-01-11 15:14:25 · 540 阅读 · 0 评论 -
MySQL/InnoDB和Group Commit(2)
今天发现Percona Release的Percona-Server-5-5-18-23-0已经完成了Group Commit工作,而且是用最优雅的方式(移植了MariaDB的实现,而不是workaround),心里难掩激动。这篇文章接前篇继续介绍一下问题的背景:什么是Group Commit,现在的官方版本Group Commit做到了什么程度?1. 什么是Group Commi转载 2013-01-11 16:04:19 · 661 阅读 · 0 评论 -
Percona-Server/MySQL响应时间统计
在Percona的5.1.53和5.5.8版本,开始将RT的统计内置到MySQL Server端。Thanks, Percona.Percona在提供了tcprstat工具统计RT时间之后,很快就在Percona Server中集成了响应时间统计的功能。这里介绍一下该功能,各位看官如果在犹豫选择Percona Server还是MySQL Community Server,这里给Perc转载 2013-01-11 16:17:19 · 498 阅读 · 0 评论 -
Mysql InnoDB行锁实现方式
InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 在实际应用中,要特别注意InnoDB行锁的这一特性,不然的话,可能导致大量的锁冲突,从而影响并发性能。下面通过一些实际例子来加以说转载 2013-01-11 16:49:14 · 360 阅读 · 0 评论 -
MySQL如何传输二进制日志
MySQL如何传输二进制日志MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”。在MySQL Replication结构中转载 2013-01-11 15:32:34 · 538 阅读 · 0 评论 -
使用pt-stalk诊断MySQL问题
在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息。另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人为的抓住现场,收集数据。这正是pt-stalk所解决的问题。pt-stalk是Percona-Toolkit的一部分(其前身是Aspersa的一部分)。安装Percona-Toolkit后,可以通过转载 2013-01-11 16:13:35 · 440 阅读 · 0 评论 -
MySQL/InnoDB和Group Commit(1)
估计相关的东西一篇文章是讲不清楚的。这个问题由来已久,Kristian Nielsen连续写了四篇文章《Fixing MySQL group commit》(part 1 |part 2 | part 3 | part 4 )深入细致的分析了“故事”的前因后果。本文完全没有任何新意,仅做一个小的总结。这里会先介绍一下什么是“Group Commit”,MySQL/InnoDB里面的转载 2013-01-11 15:46:56 · 484 阅读 · 0 评论 -
MySQL5.5 Semi-sync备库响应协议分析
这又是一篇介绍Semi-sync的文章。Semi-sync主库在一定时间内(可配置的超时时间),如果没有收到备库的响应,则会超时从而降级为普通的replication复制。如果超时发生,有时需要查清什么原因导致备库没有及时响应,一方面可以从备库的日志着手,另一方面,如果需要更细致的信息则需要从备库端的网络包查找原因。这里介绍如何分析一个Semi-sync备库响应主库的数据包。概述:转载 2013-01-11 11:34:22 · 529 阅读 · 0 评论 -
mysql 如何实现审计
转自:http://blog.chinaunix.net/uid-7187455-id-3135548.html背景:假设这么一个情况,你是某公司mysql-DBA,某日突然公司数据库中的所有被人为删了。尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人。但是拥有数据库操作权限的人很多,如何排查,证据又在哪?是不是觉得无能为力?my转载 2013-01-29 16:59:06 · 1544 阅读 · 0 评论 -
InnoDB的Master Thread调度流程
转自:http://ourmysql.com/archives/902 HOME关于OURMYSQLMYSQL链接感谢InnoDB的主要IO操作都是在Master Thread(srv0srv.c)中完成的,所以分析InnoDB的IO调度,就一定要分析Master Thread线程。下面是我画的一张流程图,标识了整个Master转载 2013-01-29 20:17:57 · 816 阅读 · 0 评论 -
innodb insert buffer
innodb insert buffer merging http://dev.mysql.com/doc/refman/5.0/en/innodb-insert-buffering.html主键是唯一标识符,新行是按主键升序插入的,这是数据库应用的共同情况。因此,向clustered index插入不需要磁盘的随机读。相反,secondary index通常不是转载 2013-01-15 17:48:52 · 664 阅读 · 0 评论 -
MySQL 5.5 新特性
MySQL5.5默认数据库存储引擎将是InnoDB plugin(以后是选择什么样的情况下使用MyISAM); 用Metadata Locking (MDL) Framework替换了原来的LOCK_open mutex (lock),使得MySQL5.5在4核以上的服务器中性能得到提升; 其他一些Replication加强:Slave fsync tunning, Relay转载 2013-01-15 18:00:08 · 661 阅读 · 0 评论 -
超越MySQL:三个流行MySQL分支的对比
导读:尽管MySQL是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该需求以及Oracle对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支。本文将讨论受人们关注的三个流行MySQL分支:Drizzle、MariaDB和Percona Server(包括XtraDB引擎)。文中简要介绍每个分支出现的原因及其目标,以及是否可在您自转载 2013-01-15 20:16:37 · 497 阅读 · 0 评论 -
Mysql Innodb中undo-log和MVCC多版本一致性读的实现(源码分析)
Mysql Innodb中undo-log和MVCC多版本一致性读 的实现 转载▼转自:http://blog.sina.com.cn/s/blog_4673e603010111ty.html 本文主要介绍mysql中innodb引擎undo-log和事务中MVCC多版本一致性读的实现。1. 概述Innodb引擎的转载 2013-01-16 16:36:00 · 1716 阅读 · 0 评论 -
也说快速关闭MySQL/InnoDB
转自:http://www.orczhou.com/index.php/2010/12/more-about-mysql-innodb-shutdown/如果用的引擎是InnoDB,每次敲下mysqladmin -uroot -p shutdown关闭数据库的时候,总是很难预测这个命令会执行多久,实际经验表明,短则五秒,长则三十分钟一小时都有可能。也分享一下我的经验吧。1. 为转载 2013-01-17 16:35:42 · 490 阅读 · 0 评论 -
MySQL的timeout那点事
转自:http://www.mysqlops.com/2011/11/24/mysql_timeout.htmlMySQL的timeout那点事因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时:root@localhost : test 12:55:50> show global variables like "%ti转载 2013-01-17 17:55:13 · 584 阅读 · 0 评论