future2012lg

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  MYSQL

上一页 1 2 3 下一页

摘要:1、复制概述1.1、复制解决的问题数据复制技术有以下一些特点:(1) 数据分布(2) 负载平衡(load balancing)(3) 备份(4) 高可用性(high availability)和容错1.2、复制如何工作从高层来看,复制分成三步:(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay log);(3) slave重做中继日志中的事件,将改变反映它自己的数据。下图描述了这一过程:该过程的第一部分就是mas 阅读全文
posted @ 2013-04-11 13:19 future2012lg 阅读(196) 评论(0) 推荐(0)

摘要:写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务,这些企业级的特性,使得现在的MySQL,完全可以应用于企业级应用环境(很多互联网公司都用其作为数据库服务器,尽管节约成本是一个因素,但是没有强大功能作后盾,则是不可想象的)。虽然,MySQL还有很多不足,比如,复制、分区的支持都十分有限、查询优化仍需要改进,但是MySQL已经是一个足够好的DBMS了,更何况它是opensource的。这段时 阅读全文
posted @ 2013-04-11 13:17 future2012lg 阅读(209) 评论(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 @ 2013-04-11 13:15 future2012lg 阅读(186) 评论(0) 推荐(0)

摘要:转载:http://www.cnblogs.com/hustcat/archive/2009/12/24/1631674.html1、并行数据库1.1、并行数据库的体系结构并行机的出现,催生了并行数据库的出现,不对,应该是关系运算本来就是高度可并行的。对数据库系统性能的度量主要有两种方式:(1)吞吐量(Throughput),在给定的时间段里所能完成的任务数量;(2)响应时间(Response time),单个任务从提交到完成所需要的时间。对于处理大量小事务的系统,通过并行地处理许多事务可以提高它的吞吐量。对于处理大事务的系统,通过并行的执行事务的子任务,可以缩短系统晌应时间。并行机有三种基本 阅读全文
posted @ 2013-04-11 13:13 future2012lg 阅读(262) 评论(0) 推荐(0)

摘要:网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的;可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:mysql> show variables;一、慢查询mysql> show variables like ‘%slow%‘;+------------------+-------+| Variable_name | Value |+---------- 阅读全文
posted @ 2013-04-10 15:10 future2012lg 阅读(186) 评论(0) 推荐(0)

摘要:数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取( 阅读全文
posted @ 2013-04-09 10:06 future2012lg 阅读(260) 评论(0) 推荐(0)

摘要:my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数。 my.ini分为两块:Client Section和Server Section。 Client Section用来配置MySQL客户端参数。 要查看配置参数可以用下面的命令:show variables like '%innodb%'; # 查看innodb相关配置参数show status like '%innodb%'; # 查看innodb相关的运行时参数(比如当前正在打开的表的数量,当前已经打开的表的数量)show global stat 阅读全文
posted @ 2013-04-08 10:47 future2012lg 阅读(337) 评论(0) 推荐(0)

摘要:在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型。char与varchar的区别char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符varchar(13) 可变长 如'www.jb51.net' 需要存储空间 13字符,从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做 阅读全文
posted @ 2013-04-08 10:07 future2012lg 阅读(292) 评论(0) 推荐(0)

摘要:索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如 阅读全文
posted @ 2013-04-07 20:41 future2012lg 阅读(156) 评论(0) 推荐(0)

摘要:1 查看系统支持的存储引擎show engines;2 查看表使用的存储引擎两种方法:a、show table status from db_name where name='table_name';b、show create table table_name;如果显示的格式不好看,可以用\g代替行尾分号有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。3 修改表引擎方法alter tab 阅读全文
posted @ 2013-04-02 16:08 future2012lg 阅读(231) 评论(0) 推荐(0)

摘要:什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。 我们通常说的MySql数据库,sql server数据库等等其实是数据库管理系统,它们可以存储数据,并提供查询和更新数据库中的数据的功能等等。根据数据库如何存储数据和如何操作数据的实现机制不同,这些数据库之间即有区别又有共同点。 MySql数据库是开放源代码的关系型数据库。目前,它可以提供的功能有:支持sql语言、子查询、存储过程、触发器、视图、索引、事务、锁、外键约束和影像复制等。在后期,我们会详细讲解这些功能。 同Oracle 和SQL Server等大型数 阅读全文
posted @ 2013-04-02 16:06 future2012lg 阅读(194) 评论(0) 推荐(0)

摘要:mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的。1 key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。 primary key 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个index;unique key 也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个index; foreign key也 阅读全文
posted @ 2013-04-01 15:06 future2012lg 阅读(1019) 评论(0) 推荐(0)

摘要:MySQL分区表例子——List分区列表分区(List分区)这里假设表中有一个sale_item_type字段,数据类型为INT型当sale_item_type为1,3,5的时候,作为一个分区当sale_item_type为2,4,6的时候,作为另一个分区当sale_item_type为7,8的时候,作为最后一个分区初期分区定义mysql> CREATE TABLE sale_data2 (->sale_dateDATETIME NOT NULL,->sale_item_typeINT NOT NULL ,->sale_money DECIMAL(10,2) NOT N 阅读全文
posted @ 2013-04-01 13:52 future2012lg 阅读(502) 评论(0) 推荐(0)

摘要:一、讲在前面 注意: 1、ALTER TABLE也可以用于对带分区的表进行重新分区,所以不能在建表之后再用ALTER TABLE语法。 2、如果你表中有KEY。用来分区的字段必须是KEY的一部份。 3、现在的分区属于水平分区。(垂直分区我们可以自己模拟,这个以后再写) mysql> use t_girl Database changed 先建立一个普通表 mysql> create table category( cid int unsigned not null auto_increment primary key, cname varchar(64) not null, par 阅读全文
posted @ 2013-04-01 13:49 future2012lg 阅读(378) 评论(0) 推荐(0)

摘要:前面提到了Mysql中的分区,现在我们来了解下子分区。大家都知道,分区有哪几类:range分区,List分区,hash分区,key分区四类,那么我们5.1后期能支持几种子分区呢?下面做个实验:range_hash复合分区:mysql> CREATE TABLE ts (id INT, purchased DATE)-> -> PARTITION BY RANGE(YEAR(purchased)) -> -> SUBPARTITION BY HASH(TO_DAYS(purchased)) -> -> SUBPARTITIONS 2 -> -> 阅读全文
posted @ 2013-03-30 22:34 future2012lg 阅读(248) 评论(0) 推荐(0)

摘要:mysql 游标使用请使用 mysql 1.5 或以上version;测试表 level ;Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->createtabletest.level(namevarchar(20));再 insert 些数据 ;代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& 阅读全文
posted @ 2013-03-29 21:14 future2012lg 阅读(204) 评论(0) 推荐(0)

摘要:子分区子分区是分区表中每个分区的再次分割。例如,考虑下面的CREATE TABLE语句:CREATE TABLE ts (id INT, purchased DATE) PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN MAXVALUE )... 阅读全文
posted @ 2013-03-28 21:37 future2012lg 阅读(2715) 评论(0) 推荐(0)

摘要:mysql服务的启动和停止net stop mysqlnet start mysql;退出MYSQL命令: exit (回车)(一)客户端连接MySQL数据库服务器命令格式:mysql -h 数据库服务器IP -u 用户名 -p 数据库名称安装MySQL数据库完成以后,切换到MySQL安装目录的bin目录下面(例如我的是D:\AppServ\MySQL\bin>),执行如下命令连接MySQL数据库服务器:D:\AppServ\MySQL\bin>mysql -h localhost -u root -pcmd命令里输入cd C:\appserv 将进入此目录下。提示输入登录密码,然 阅读全文
posted @ 2013-03-20 13:57 future2012lg 阅读(412) 评论(0) 推荐(0)

摘要:一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括: 1)、与单个磁盘或文件系统分区相比,可以存储更多的数据。2)、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现 阅读全文
posted @ 2013-03-07 14:10 future2012lg 阅读(228) 评论(0) 推荐(0)

摘要:转载http://blog.sina.com.cn/s/blog_85ead02a0101csci.html1、分库分表很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概是这样子:<?phpfor($i=0;$i< 100; $i++ ){ //echo "CREATE TABLE d 阅读全文
posted @ 2013-03-04 09:52 future2012lg 阅读(29018) 评论(3) 推荐(0)

上一页 1 2 3 下一页