技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL
    今天在书店里翻完了一遍《七天七数据库》。这本书简单介绍了postgreSQL,riak,mongodb,HBase,riak,Neo4j,redis七个数据,并着重谈了数据库的特性差异和在部署维护时候的特点,并对不同需求下的数据库选型做了很多建议,感觉受益非浅。 我的几个项目,都遇到了mysql 向nosql过渡的问题,应该如何选型,我终于有了初步的方案。
    关系数据库的不足: a. 不能很好的为Web 2.0的业务做建模(搜索与社交图谱), b. 无法在数据库层面很好的与JSON等做数据交换, c. SQL语言与编程语言的差异带来的开发学习使用成本, d.是否开源,代码能否改动, f. 关系数据库的优化器、解析器代价太大,影响响应时间、吞吐量, g.不能很好的满足业务对Scalability以及低成本服务器的需求, h.在Scale out的情况下的管理复杂度, i. 不能方便的调整业务的ACID需求,主要为Relax Consistency与Relax Durability的需求。
    对于数据库来讲大多瓶颈都出现在IO问题上,所以现在SSD类的设备也才能大行其道。那数据库的IO这块有什么可以优化的吗? 我这里大致谈一下我的看法,希望能达到一个抛砖引玉的效果。
    这个问题由一个同事问到的一次导入数据引发。一个很常见的操作,将数据从一个表中dump出来,在用mysql < a.sql的方式导入到另一个库的一个表中。在执行导入的时候,提示 MySQL server has gone away。在追查的时候突然想到会不会是因为max_allowed_packet太小导致的。将max_allowed_packet改大,确实解决了问题。
    本文作者历时一个月完成,详细介绍了MySQL索引的知识,强烈推荐!
    鉴于MySQL5.5数据库产品的性能提升不明显,软件产品稳定性不佳,且新增加的功能也不足突破,所以生产环境中只有几套应用使用MySQL5.5版本支撑,以培养与掌握MySQL5.5的经验和技术,所以个人对MySQL5.5系列的实战也不多。现有一个项目,因服务器配置的特殊性,以及业务特点、数据容量、数据访问等也非常特殊,不得不考虑采用MySQL5.5,且国内某mysql服务提供商技术人员指定要求的版本号为MySQL5.5.27。综合上述信息导致今天无意碰到一个MySQL数据库复制搭建过程中出现的错误信息,可能其他同行也可能会碰见,特此写一篇技术博文分享给大家。
    数据库的堆表与索引组织表的数据存储格式讨论
    在一些场景想利用MySQL的内存表存一些数据来加快数据的操作。但如果在复制环境中这可不是一个好事情。
    MariaDB常见问题,同样适用于MySQL。
    MySQL 触发器功能比较简单,大部分只用来简单的更新第三方表,今天我来演示下MySQL触发器在造数据方面的功效。
     摘要: 1、基础知识; 2、MVCC实现原理以及视图化理解(包含些测试以便理解); 3、深MVCC实现机制。
    要深入研究mysql那首先对mysql的一些系统/扩展变量有一定的了解,因为这些变量不仅决定mysql一些配置信息,还影响了mysql的性能优化提升,其中包括安全、优化、并发、复制等等。 笔者上网查了一下,这些资料有限,以及官网的一个中文文档介绍的内容简短(不包括值域,作用域,有些变量压根没翻译只是给出值)所以想写篇文章,一来学习巩固一下mysql,二来方便以后查阅。其中内容笔者前后用了14天,尽量查阅大量资料(问人,网上查阅,自己测试)以确保尽可能正确,且有些直接从官网英文文档翻译过来,但难免会出现因为知识结构不全面而有什么纰漏。
    字段尽可能用NOT NULL,而不是NULL,除非特殊情况。这句话在mysql优化的文章被大量的引用,但却不说明原因,下面就讲述一下相关内容
     最近做一个mysql专题学习。在了解到mysql变量时myisam_stats_method引导出MyISAM索引统计集合。然后了解InnODB和MyISAM索引统计集合,以下是对官网的翻译以及自己附加些少理解。
    是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发的免费开源的数据库服务器。MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎。简单的说:MariaDB是MySQL的一个变种,可以作为官方MySQL版本的一个替代品,并且在一些特性上做了增强。
    MySQL作为一个低成本、高性能、可靠性好而且开源的数据库产品,在互联网企业应用非常广泛,例如淘宝网有数千台MySQL服务器的规模。虽然近两年来NoSQL的发展很快,新产品层出不穷,但在业务中应用NoSQL对开发者来说要求比较高,而MySQL拥有成熟的中间件、运维工具,已经形成一个良性的生态圈等,因此从现阶段来看,MySQL占主导性,NoSQL为辅。 在过去一年时间里,我们(阿里集团核心系统数据库团队)在MySQL托管平台方向做了大量工作,设计和实现了一套。。。。
    在InnoDB表中,若存在自增字段,则会维护一个表级别的锁,这里称为自增锁。每次插入新数据,或者update语句修改了此字段,都会需要获取这个锁. 由于一个事务可能包含多个语句,而并非所有的语句都与自增字段有关,因此InnoDB作了一个特殊的处理,自增锁在一个语句结束后马上被释放。之所以说是特殊处理,是因为普通的锁,都是在事务结束后释放。若一个表有自增字段,一个insert语句不指定该字段的值,或指定为NULL时,InnoDB会给它赋值为当前的AUTO_INCREMENT的值,然后AUTO_INCREMENT加1。
    在给客户巡检时,发现一个用PL/SQL Developer执行的效率低下SQL,通过执行计划可以看到,对Cost影响较大部分为IDX_TS_UH_ORDER_GOODS_1表的索引跳扫,Cost值157,虽然只有157,但是对走索引来说,157的Cost已经很大了,如果正常索引扫,这个值会小很多,而且INDEX SKIP SCAN的结果和HASH JOIN SEMI循环,导致总Cost达到287M(100),如果能将索引跳扫的Cost从157降下来,INDEX SKIP SCAN的结果和HASH JOIN SEMI循环的总Cost就会成几何下将,这个SQL优化重点也是使索引跳扫改成正常索引扫,猜测产生索引跳扫的原因可能是IDX_TS_UH_ORDER_GOODS_1表上存在复合索引,而该表的ORDER_ID列不是复合索引的第一列,解决方法:在IDX_TS_UH_ORDER_GOODS_1表的ORDER_ID列上单独建立索引。
    背景   主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患)。一般设置为双M(M1、M2),假设当前状态为写M1,而M2只读,切换的大致流程如下: 1、  停止应用写M1,将M1设置为只读 .....
    MySQL 5.6测试之Replication 一、简述 MySQL 5.6版本相比以前新增了很多令人激动的特性,简要介绍见:转:MySQL 5.6新特性。性能方面已经做过测试了,详细请见:MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试。接下来继续测试其Replication(主从复制)功能,看看是否依旧能让人激动。_mode
[ 共525篇文章 ][ 第4页/共27页 ][ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ][ 10 ][ >| ]
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1