
关系型数据库(mysql)
ykingor
这个作者很懒,什么都没留下…
展开
-
MySQL单表百万数据记录分页性能优化
背景:自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行。测试环境:先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = ‘dbname’转载 2016-08-12 01:28:42 · 220 阅读 · 0 评论 -
保证分布式系统数据一致性的6种方案
问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接转载 2016-08-16 19:31:37 · 1433 阅读 · 0 评论 -
计算 TPS,QPS 的python 脚本
#!/usr/bin/env python#coding=utf-8""" 以不同方式获取mysql中的tps,qps,并做对比 """import timeimport sysimport osimport MySQLdbimport dbconndef main() : try: conn = M转载 2016-08-16 16:59:55 · 2551 阅读 · 0 评论 -
mycat+mysql集群:实现读写分离,分库分表
1.mycat文档:https://github.com/MyCATApache/Mycat-doc 官方网站:http://www.mycat.org.cn/2.mycat的优点:配置简单,灵活可实现读写分离可利用多种规则实现分库分表心跳机制,自动踢出故障机组免费开源,长期维护,社区活跃 mycat的缺点:主要是分片之后有一些限制,如只能2表join转载 2016-08-16 16:37:20 · 1545 阅读 · 0 评论 -
mysql高可用各个技术的比较
数据库的可靠指的是数据可靠 数据库可用指的是数据库服务可用可靠的是数据:例如工商银行,数据不能丢失可用的是服务:服务器不能宕机 灵活运用MYSQL的各种高可用技术来达到下面各种级别的高可用要求要达到99.9%:使用MYSQL复制技术要达到99.99%:使用MYSQL NDB 集群和虚拟化技术要达到99.99转载 2016-06-12 16:47:25 · 345 阅读 · 0 评论 -
寻找适合你的MySQL高可用解决方案
需要MySQL高可用吗? 问题似乎很明显,但是有时却忽略了。实际上这是一个投入和产出的问题,投入越大,你获得数据安全性就越高,所以这个问题可以归结为”你的服务器宕机成本是多少?“,如果你的宕机成本小于$10/hour,那基本上你不需要高可用方案了,So,不用浪费时间看下文了。 如何确定哪种高可用方案对你最好? 当前,MySQL高可用有下面几种,从简单到非常复杂,我们排转载 2016-06-13 11:19:57 · 182 阅读 · 0 评论 -
MMM结合Semisync机制实现Mysql Master-Master高可用
架构:两个Master(主备模式),一个或多个Slave(也可以没有Slave,只有主备Master):1、Monitor运行MMM Daemon程序,实现所有Mysql服务器的监控和故障切换工作;2、Master1和Master2互为主备,同时只有一个主可用于写操作(也可同时分担读操作),另一个作为备用,可以分担读操作,读写分离需要应用程序实现;3、Slave机器转载 2016-06-13 11:26:51 · 390 阅读 · 0 评论 -
MySQL 性能优化的最佳20多条经验分享
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了转载 2016-06-13 11:31:06 · 161 阅读 · 0 评论 -
MySQL高可用MMM安装部署以及故障转移详细资料汇总
1, mmm简介MMM(Master-Masterreplication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM转载 2016-06-13 11:29:08 · 594 阅读 · 0 评论 -
MySql 之表设计原则
1) 不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之 间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表 结构的重构提供可能性。2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系转载 2016-06-13 19:44:29 · 721 阅读 · 0 评论 -
MySQL 数据库性能优化第一篇文章之缓存参数优化
在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣的朋友们有所帮助。这是 MySQL数据库性能优化专题 系列的第一篇文章:MySQL 数据库性能优化之缓存参数优化数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工转载 2016-06-13 21:10:31 · 172 阅读 · 0 评论 -
MySQL 数据库性能优化第二篇文章之表结构优化
很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 pa转载 2016-06-13 21:11:15 · 141 阅读 · 0 评论 -
MySQL 数据库性能优化第三篇文章之索引优化
大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。为什么索引能提高数据访问性能?他会不会有“副作用”?是不是索引创建越多,性能就越好?到底该如何设计索引,才能最大限度的发挥其效能?这篇文章主要是带着上面这几个问题来做一个简要的分析,同时排除了业务场景所带来的特殊性,请不要纠结业务场景的影响。索引为什么能提高数据访问性能?很多人只知道索引能转载 2016-06-13 21:21:31 · 200 阅读 · 0 评论 -
MySQL 数据库性能优化第四篇文章之SQL优化
有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧。注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考转载 2016-06-13 21:22:29 · 153 阅读 · 0 评论 -
Mysql海量数据存储和解决方案第一篇 分布式DB方案
1) 分布式DB水平切分中用到的主要关键技术:分库,分表,M-S,集群,负载均衡2) 需求分析:一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载,对系统的稳定性的扩展性带来极大挑战。3) 现有解决方式:通过数据切分提高网站性能,横向扩展数据层 水平切分DB,有效降低了单台机器的负载,也减小了宕机的可能性。 集群方案:解决DB宕转载 2016-06-13 23:53:37 · 392 阅读 · 0 评论 -
Mysql海量数据存储和解决方案第二篇 Mysql分表查询海量数据
前面已经讲过Mysql实现海量海量数据存储查询时,主要有几个关键点,分表,分库,集群,M-S,负载均衡。其中分库分表是很重要的一点。分库是如何将海量的MySQL数据放到不同的服务器中,分表则是在分库基础上对数据现进行逻辑上的划分。数据划分可有多种方式,找到一个主键后,可以按号段分,也可以Hash取模分,也可以选择在认证库中保存DB配置。具体如何选择具体情况具体分析。转载 2016-06-13 23:54:45 · 1312 阅读 · 0 评论 -
mysql单机多实例
安装mysqlhttp://download.youkuaiyun.com/detail/mchdba/7545037 下载mysql-5.6.12.tar.gzyum install cmake -yyum install -y ncurses-devel.x86_64mkdir-p /usr/local/mysqltar -xvf mysql-5.6.12.tar.gzcd mys转载 2016-06-14 18:44:16 · 260 阅读 · 0 评论 -
mariadb安装
使用的是linode的centos7系统,安装mysql发现已经默认的是mariadb。但是不管是使用linode官网说明还是百度搜索到的的根本安装方法无法安装成功。总是提示这一句:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock转载 2016-06-26 03:36:27 · 236 阅读 · 0 评论 -
微博数据库那些事儿:3个变迁阶段背后的设计思想
微博数据库经历的变迁首先为大家分享微博数据库经历的几个重要的阶段。初创阶段初期微博作为一个内部创新产品,功能比较简洁,数据库架构采用的是标准 1M/2S/1MB 结构,按照读写分离设计,主库承担写入,而从库承担访问。如果访问压力过大,可以通过扩容从库的数量获得 scale out 的能力。上图红色代表写入、绿色代表读取、黑色映射到内部结构,由转载 2016-08-19 13:47:31 · 545 阅读 · 0 评论