文章分类 -  MYSQL

摘要:背景:众所周知,MySQL只支持一对多的主从复制,而不支持多主(multi-master)复制。当然,5.6的GUID功能的出现也带来了multi-master的无限可能,不过这个已经是题外话了。本文主要介绍一种非实时的适用于各版本MySQL的multi-master方法。内容简介:最初的思路来源于一位国外DBA的blog :http://thenoyes.com/littlenoise/?p=117基本原理就是通过SP记录当前 master-log的name和pos记录到表中,然后读取下一个master记录,执行stop slave / change master / start slave 阅读全文
posted @ 2012-05-22 18:21 luckc# 阅读(297) 评论(0) 推荐(0) 编辑
摘要:VIDEO:http://www.slideshare.net/sky000/mysql-b2c2011年4月23日,主题为《云计算技术沙龙——大规模互联网架构实战》的第九期TUP活动在中国科学院计算技术研究所一层报告厅举行,本次沙龙活动主要涉及基于MySQL的B2C电商系统前端数据层架构、应对规模和复杂性挑战、Hadooop未来走向等话题。 在此次活动中,来自麦包包技术保障部总监简朝阳发表了《MySQL的B2C电商系统前端数据层架构》演讲,在此次演讲中,他带来了三方面的技术分享,一个是基于MySQL常见一些高可用可扩展架构分析;另一方面是基于日志解析对现在一些数据库常见架构方面一些扩展,包. 阅读全文
posted @ 2012-04-24 16:48 luckc# 阅读(555) 评论(0) 推荐(0) 编辑
摘要:1.1.1 摘要如果说要对数据库进行优化,我们主要可以通过以下五种方法,对数据库系统进行优化。1. 计算机硬件调优2. 应用程序调优3. 数据库索引优化4. SQL语句优化5. 事务处理调优在本篇博文中,我们将想大家讲述数据库中索引类型和使用场合,本文以SQL Server为例,对于其他技术平台的朋友也是有参考价值的,只要替换相对应的代码就行了!索引使数据库引擎执行速度更快,有针对性的数据检索,而不是简单地整表扫描(Full table scan)。为了使用有效的索引,我们必须对索引的构成有所了解,而且我们知道在数据表中添加索引必然需要创建和维护索引表,所以我们要全局地衡量添加索引是否能提高数 阅读全文
posted @ 2012-04-23 09:44 luckc# 阅读(269) 评论(0) 推荐(0) 编辑
摘要:网上流传版第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层。 分析:通过这种数据库设计出的无限级,可以说读取的时候相当费劲,所以大部分的程序最多3-4级分类,这就足以满足需求,从而一次性读出所有的数据,再对得到数组或者对象进行递归。本身负荷还是没太大问题。但是如果分类到更多级,那是不可取的办法。 这样看来这种分类有个好处,就是增删改的时候轻松了…然而就二级分类而言,采用... 阅读全文
posted @ 2012-04-17 10:41 luckc# 阅读(1426) 评论(0) 推荐(0) 编辑
摘要:在日常工作中,当我们遇到海量数据时,如何从中挑选出自己想要的数据呢?是盲目的查找,还是寻求新的解决方案亦或是通过技巧来获取?开发者在设计一个数据表单时,往往会遵循三条常用形式,他们认为常规模式是设计的唯一途径。然而由于开发者一开始就抱有这种心态,使数据表单设计变得墨守成规,阻碍了它的创新。作者Shivprasad从平时的工作项目中积累了一些经验,向我们介绍了11款制作数据表单技巧,当设计到数据表单制作时,不妨以此来参考,以丰富我们的应用经验。Rule 1:弄清(OLTP或OLAP)应用的本质是什么?当开始制作数据表单设计时,首先,要分析你设计的这个程序的本质是什么?是事务性还是分析性的?你会发 阅读全文
posted @ 2012-04-12 09:17 luckc# 阅读(179) 评论(0) 推荐(0) 编辑
摘要:在当前这个信息量飞速增长的时代,一个企业,尤其是电子商务企业的成功已经越来越多地与其海量数据处理能力相关联。高效、迅速地从海量数据中挖掘出潜在价值并转化为决策依据的能力,将成为企业的核心竞争力。数据的重要性毋庸置疑,但随着数据的产生速度越来越快,数据量越来越大,数据处理技术的挑战自然也越来越大。如何从海量数据中挖掘出价值所在,分析出深层含义,进而转化为可操作的信息,已经成为各互联网企业尤其是电子商务公司不得不研究的课题。本文将介绍国内箱包行业电子商务领军者麦包包如何利用海量数据的分析处理(个性化推荐引擎)来协助用户更好地完成购买体验。图1 数据层基础架构数据层基础架构如图1所示,麦包包的数据层 阅读全文
posted @ 2012-04-03 14:13 luckc# 阅读(223) 评论(0) 推荐(0) 编辑
摘要:索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。假设我们创建了一个名为people的表:CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );然后,我们完全随机 阅读全文
posted @ 2012-03-26 10:24 luckc# 阅读(135) 评论(0) 推荐(0) 编辑
摘要:写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行 阅读全文
posted @ 2012-03-07 19:11 luckc# 阅读(239) 评论(0) 推荐(0) 编辑
摘要:导读:尽管MySQL是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该 需求以及Oracle对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支。本文将讨论受人们关注的三个流行MySQL分 支:Drizzle、MariaDB和Percona Server(包括XtraDB引擎)。文中简要介绍每个分支出现的原因及其目标,以及是否可在您自己的生产环境中使用它们。文章内容如下:简介MySQL是历史上最受欢迎的免费开源程序之一。它是成千上万个网站的数据库骨干,并且可以将它(和Linux)作为过去10年里Internet呈指数级增长的一 阅读全文
posted @ 2012-01-12 15:13 luckc# 阅读(1436) 评论(1) 推荐(0) 编辑
摘要:XtraBackup是percona公司提供的开源工具,以热备Innodb表著称而被广泛采用。XtraBackup对Innodb的备份之所以是热备,无需锁表,是基于Innodb自身的崩溃恢复机制,它首先复制所有的Innodb数据文件,这样复制出来的文件肯定是不一致的,然后对每个文件进行崩溃恢复处理,最终达到一致。就和MySQL在启动Innodb的时候一样,会通过比较数据文件头和redo log文件头信息来检查数据是否是一致的,如果不一致就尝试通过前滚(把redo log中所有提交的事务写入数据文件)和回滚(从数据文件中撤销所有redo log中未提交的事务引起的修改)来使数据达到最终一致。Th 阅读全文
posted @ 2012-01-10 16:13 luckc# 阅读(225) 评论(0) 推荐(0) 编辑
摘要:本文给大家介绍六条比较有用的MySQL的SQL语句,可能很多人都通过PHP来实现这些功能。 1. 计算年数 你想通过生日来计算这个人有几岁了。 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0; 2. 两个时间的差 取得两个 datetime 值的差。假设 dt1 和 dt2 是... 阅读全文
posted @ 2011-12-16 13:18 luckc# 阅读(153) 评论(0) 推荐(0) 编辑
摘要:摘要 IBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。 关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而... 阅读全文
posted @ 2011-11-22 15:18 luckc# 阅读(170) 评论(0) 推荐(0) 编辑
摘要:关于 MySQL 调优有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为:替换有问题的硬件。对 MySQL 进程的设置进行调优。对查询进行优化。迁移到 DB2您正在寻找一种干净利落、无成本的方法用来从 MySQL 迁移到 IBM DB2 吗?“从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C” 介绍了如何使用文中提供的迁移工具来简单地实现这种转换。可以 下载 免费的 DB2 Express-C 并开始体验。替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU 阅读全文
posted @ 2011-11-22 15:10 luckc# 阅读(201) 评论(0) 推荐(0) 编辑
摘要:概述 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将 SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL P... 阅读全文
posted @ 2011-11-16 18:03 luckc# 阅读(185) 评论(0) 推荐(0) 编辑
摘要:在可扩展性方面,客户的要求变得越来越多,功能列表上经常会出现20条、50条甚至多达100多条要求,但总的来说,我们可以把它们缩短为五个大类,通过五条途径来解决可扩展性问题: 1. 调整查询操作 对查询进行优化能够让你付出最少的精力就得到最多的成果。将查询功能完善的发挥出来,达到业务需求,不会被过多的流量和过重的载荷压倒。这就是为什么我们经常看见客户碰到的麻烦越来越多,随着他们网站的访问量越来越... 阅读全文
posted @ 2011-10-18 13:31 luckc# 阅读(162) 评论(0) 推荐(0) 编辑
摘要:MySQL是动态网站开发中最著名的开源数据库系统。如果你在网站中使用了MySQL,那么你应该定期备份你的数据以防止它丢失。 本文将介绍自动或手动备份MySQL数据库的10个教程,看看有没有最适合你的方法。 1.Backing Up Using MySQLDump(利用MySQLDump备份MySQL数据库) 可以使用MySQL自带的mysqldump工具来备份数据。在mysqld... 阅读全文
posted @ 2011-10-18 13:25 luckc# 阅读(267) 评论(0) 推荐(0) 编辑
摘要:客户用的数据库是mysql,而研发好的产品支持oracle,我们必须把数据库环境从oracle转向mysql。我们在转换的过程中碰到了下面一些问题,希望能给同样遭遇的同仁们一些借鉴。如果我们在最初的设计、编码过程中注意数据库的移植性,这种情况下可以完全不需要作额外工作。 一、数据库环境从oracle转向mysql碰到的问题。 因为逻辑不变,所以原则是不改应用程序代码,只改数据库表的创建/初始化... 阅读全文
posted @ 2011-10-18 13:24 luckc# 阅读(258) 评论(0) 推荐(0) 编辑
摘要:通过锁机制,可以实现多线程同时对某个表进行操作。如下图所示,在某个时刻,用户甲、用户乙、用户丙可能会同时或者先后(前面一个作业还没有完成)对数据表 A进行查询或者更新的操作。当某个线程涉及到更新操作时,就需要获得独占的访问权。在更新的过程中,所有其它想要访问这个表的线程必须要等到其更新完成为止。此时就会导致锁竞争的问题。从而导致用户等待时间的延长。在这篇文章中,笔者将跟大家讨论... 阅读全文
posted @ 2011-10-18 13:22 luckc# 阅读(142) 评论(0) 推荐(0) 编辑
摘要:MySQL数据库丢失root密码后,我们应该采取如下的方法来解决:首先,我们需要结束掉mysql的服务进程。然后在windows下面。 一是可以通过任务管理器来结束掉,应该是mysql-nt.exe。二是,如果你的mysql注册为服务的话,可以到服务里面把他先停掉。 在linux或者unix下面直接kill mysql的服务进程就可以。然后,再... 阅读全文
posted @ 2011-10-18 13:21 luckc# 阅读(220) 评论(0) 推荐(0) 编辑
摘要:本文给大家介绍六条比较有用的MySQL的SQL语句,可能很多人都通过PHP来实现这些功能。 1. 计算年数 你想通过生日来计算这个人有几岁了。 SELECTDATE_FORMAT(FROM_DAYS(TO_DAYS(now())-TO_DAYS(@dateofbirth)),'%Y')+0; 2. 两个时间的差 取得两个 datetime 值的差。假设 dt1 和... 阅读全文
posted @ 2011-10-18 13:14 luckc# 阅读(150) 评论(0) 推荐(0) 编辑