数据库
文章平均质量分 81
本专栏用于记录数据库的学习和总结。与网友分享交流,同时方便自己日后查阅。
alexdamiao
good good study, day day up
展开
-
MySQL读写分离介绍
MySQL读写分离基本原理是让master数据库处理写操作,slave数据库处理读操作。master将写操作的变更同步到各个slave节点。MySQL读写分离能提高系统性能的原因在于:物理服务器增加,机器处理能力提升。拿硬件换性能。主从只负责各自的读和写,极大程度缓解X锁和S锁争用。slave可以配置myiasm引擎,提升查询性能以及节约系统开销。原创 2016-07-28 00:27:28 · 1376 阅读 · 1 评论 -
mysql-行锁的实现
一、背景知识事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改原创 2016-07-27 23:06:07 · 42652 阅读 · 11 评论 -
MySql:利用keepalived构建高可用MySQL-HA
关于MySQL-HA,目前有多种解决方案,比如heartbeat、drbd、mmm、共享存储,但是它们各有优缺点。heartbeat、drbd配置较为复杂,需要自己写脚本才能实现MySQL自动切换,对于不会脚本语言的人来说,这无疑是一种脑裂问题;对于mmm,生产环境中很少有人用,且mmm 管理端需要单独运行一台服务器上,要是想实现高可用,就得对mmm管理端做HA,这样无疑又增加了硬件开支;对于共享存原创 2016-07-17 23:23:44 · 4209 阅读 · 1 评论 -
MYSQL索引:对聚簇索引和非聚簇索引的认识
聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致。一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引。在《数据库原理》一书中是这么解释聚簇索引和非聚簇索引的区别的:聚簇索引的叶子节点就是数据节点,而非聚簇索引的叶子节点仍然是索引节点,只不过有指向对应数据块的指针。因此,MYSQL中不同的数据存储引擎对聚原创 2016-07-17 22:03:41 · 50519 阅读 · 5 评论 -
MySql-半同步复制
文章目录一,为什么要使用半同步复制?二,半同步复制原理二,半同步复制的实现一,为什么要使用半同步复制?MySQL复制默认是异步复制,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master Sever就自动返回数据给客户端,但并不知道Slave是否或何时已经接收且已处理,因此存在一定的概率备库与主库的数据是不对原创 2016-07-10 17:52:26 · 2857 阅读 · 0 评论 -
MySql-Undo及Redo详解
00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。转载 2016-07-10 17:45:47 · 11781 阅读 · 2 评论 -
MySql之分页优化
原文:http://www.xarg.org/2011/10/optimized-pagination-using-mysql/很多应用往往只展示最新或最热门的几条记录,但为了旧记录仍然可访问,所以就需要个分页的导航栏。然而,如何通过MySQL更好的实现分页,始终是比较令人头疼的问题。虽然没有拿来就能用的解决办法,但了解数据库的底层或多或少有助于优化分页查询。我们先从一个常用但性能很差的查询来看一看翻译 2016-07-05 22:34:02 · 2526 阅读 · 0 评论 -
MySQL-SQL插入性能优化
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1. 一条SQL语句插入多条数据。常用的插入语句如:1234I原创 2016-06-28 22:27:39 · 10334 阅读 · 4 评论 -
MySQL-物理备份-Percona XtraBackup 备份原理
MySQL · 物理备份 · Percona XtraBackup 备份原理前言Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心。我们 RDS MySQL 的物理备份就是基于这个工具原创 2016-06-27 21:47:21 · 7754 阅读 · 1 评论 -
MySql-性能压力测试-概论篇
性能测试前先要清楚目的是什么?测试数据库新版本的性能 测试新机型的性能 验证某些DB/OS层面的参数 压测存储的性能压测某些场景 确定目标之后我们要选择何种压测场景进行压测,只读,只写,读写混合? 观察压测过程中的性能曲线是否满足我们的期望,并且真对性能出现可重复性抖动的问题进行分析原因并改进。影响性能的因素 大致分为:DB 层面、OS 层面 、存储层面。DB层面 对于M原创 2016-06-20 00:12:26 · 4897 阅读 · 0 评论 -
MySql-日志详解
错误日志 MySQL的错误信息是在data目录下的 错误日志本身所定义的内容本身是可以定义的 编辑配置文件,定义错误日志:log-error=/path/to/xx.err #定义是否启动错误日志的功能log-warnings={1|0} #定义是否将警告信息也记录在错误日志中默认情况下错误日志也记录以下几个方面的消息: 1、服务器启动和关闭过程中的信息 未原创 2016-06-13 19:25:37 · 9990 阅读 · 0 评论 -
MySql-索引优化
索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法。mysql默认的是二叉树算法 BTREE。Explain优化查询检测EXPLAIN可以帮助开发人员分析SQL问题,explain显示了mysql如何使用索引来处理select语句以及连接表。使用方法:在select语句前加上Explain,Explain select * from blog where myname=原创 2016-06-09 20:12:31 · 5121 阅读 · 1 评论 -
MySql-主从复制
一、概述 1、原理 复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。 主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,原创 2016-06-07 00:00:57 · 5757 阅读 · 0 评论 -
MySql-InnoDB-缓存管理
MySql内存结构 InnoDB主索引是聚簇索引,索引与数据共用表空间,对于InnoDB而言,数据就是索引,索引就是数据。InnoDB缓存机制和MyISAM缓存机制的最大区别就是在于,InnoDB不仅仅是缓存索引,还会缓存数据。InnoDB缓存池 InnoDB缓存池(InnoDB buffer pool)是InnoDB性能提升的核心,它既可以缓存数据还可以缓存索引,甚至其他管理数据(例如元数据原创 2016-06-05 16:41:37 · 9653 阅读 · 0 评论 -
MySql-权限管理
在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有:user表db表host表table_priv表columns_priv表proc_priv表MySQL存取控制包含2个阶段: 阶段1:服务器检查你是否允许连接。 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库中一个表精选(se原创 2016-05-29 23:46:23 · 3853 阅读 · 1 评论 -
MySql在Linux的启动方式
在Linux系统下,MySQL服务器通常有四种启动方式:mysqld守护进程启动,mysqld_safe启动,mysql.server启动,mysqld_multi多实例启动。1、mysqld守护进程启动一般的,我们通过这种方式手动的调用mysqld,如果不是出去调试的目的,我们一般都不这样做。这种方式如果启动失败的话,错误信息只会从终端输出,而不是记录在错误日志文件中,这样,如果mysql崩溃的话原创 2016-05-25 15:16:10 · 19615 阅读 · 1 评论 -
MySql-体系结构以及各种文件类型
MySql体系结构由数据库和数据库实例组成,是单进场多线程架构。数据库:物理操作系统文件或者其它文件的集合,数据库文件可以是frm、myd、myi、ibd等结尾的文件。当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件。 数据库实例:由数据库后台进程/线程以及一个共享内存区组成,共享内存可以被运行的后台进程/线程所共享。MySql文件类型 Mysql主要文件类型有如下几种: 参数文件转载 2016-05-25 10:15:25 · 12584 阅读 · 3 评论 -
MySql笔记-数据库基本操作
连接mysql mysql -h host_name -p -u user_name 退出mysql mysql> quit执行mysql mysql> Select Now(),User(),Version(); mysql> Select Now(),User(),Version()\g // ; \g 终止语句 mysql> Select Now(),User(),Version(原创 2016-05-15 17:54:40 · 901 阅读 · 0 评论 -
MySQL资源大全
原文链接,http://blog.jobbole.com/100516/分析工具 性能,结构和数据分析工具Anemometer – 一个 SQL 慢查询监控器。 innodb-ruby – 一个对 InooDB 格式文件的解析器,用于 Ruby 语言。 innotop – 一个具备多种特性和可扩展性的 MySQL 版 ‘top’ 工具。 pstop – 一个针对 MySQL 的类 top 程转载 2016-05-15 20:58:29 · 1380 阅读 · 0 评论 -
MySql-如何查询删除数据表重复记录
查询SELECT name, email, COUNT(*)FROM usersGROUP BY name, emailHAVING COUNT(*) > 1重点来了,查询容易,那应该如何删除重复记录呢?演示数据 表结构:mysql> desc demo;+-------+------------------+------+-----+---------+原创 2016-05-19 17:16:47 · 4439 阅读 · 0 评论 -
MySql-数据类型
一、MySQL的数据类型主要包括以下五大类: 整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮点数类型:FLOAT、DOUBLE、DECIMAL 字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG原创 2016-05-12 22:04:44 · 744 阅读 · 0 评论 -
MySql笔记-主要存储引擎
存储引擎特性,索引特性,基本操作原创 2016-05-08 15:31:18 · 831 阅读 · 0 评论 -
全面梳理SQL和NoSQL数据库的技术差别
数据表VS.数据集关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。预定义结构VS.动态结构关系型数据通常对应于翻译 2016-05-19 21:48:35 · 2232 阅读 · 0 评论 -
数据库理论-设计范式
数据库范式分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,考虑到3NF就够了。首先是第一范式(1NF)。1NF的定义为:符合1NF的关系中的每个属性都不可再分。表1所示的情况,就不符合1NF的要求。 实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS),例如SQL Server,Oracle,MySQL中创建数据表的时候,如果原创 2016-05-17 20:41:06 · 783 阅读 · 0 评论