mysql系列之9.mysql日志&存储引擎】的更多相关文章

原文:MySQL - 常见的三种数据库存储引擎 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能.现在许多不同的数据库管理系统都支持多种不同的数据引擎.MySQL的核心就是插件式存储引擎.   查看存储引擎: 我们可以用SHOW ENGINES; 来查询数据库的存储引擎.   MySQL给用户提供了许多不同的存储引擎.在MySQL中,不需…
mysqlbinlog 是什么? 数据目录下的如下文件: mysql-bin.xxxxxx 作用? 记录数据库内部增删改查对mysql数据库有更新的内容的记录 三种模式? statement level 模式: 缺点是不够细致 row level 模式: 日志会记录每一行数据被修改的形式 (一下子修改多行其实就一条语句, 但是它会记录成多行) 优点: 记录每一行的细节, 可以记录function/trigger/存储过程 mixed level 模式: 混合模式, 自动判断该使用statemen…
一.MySQL存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型).MySQL5.5以后默认使用InnoDB存储引擎. 下图是MySQL中各种存储引擎的对比. 1.MyISAM: 这种引擎是mysql最早提供的.它不支持事务,也不支持外键,尤其是访问速度快.这种引擎又可以分为静态MyISAM.动态MyISAM 和压缩MyISAM三种: 1) 静…
InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracel数据库的架构.通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoDB的存在,才使MySQL数据库变得更有魅力.本文将介绍InnoDB存储引擎的体系架构及其不同于其他存储引擎的特性. 2.1.InnoDB 存储引擎概述 该引擎是第一个完整支持ACID事务的MySQL引擎,其特点是行锁设计.支持MVCC.支持外键.提供一致性非锁定读,同时被设计用来最有效的利用以及使用内存和CPU. 2…
1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from YOUR_DB_NAME where name='YOUR_TABLE_NAME'; b.show create table YOUR_TABLE_NAME; 如果显示的格式不好看,可以用\g代替行尾分号  有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为…
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表,关掉后…
1: 视图什么是视图    视图是一个虚拟表, 它的内容来源于查询的实表, 本身没有真正的数据;视图的作用    对于复杂的查询时,每次查询时都需要编写一些重复的查询代码让编写sql的效率低下, 为了解决这个问题,就是提供视图创建视图    语法: create view view_name as select .....    例: create view v_stu as select stu_no, stu_name, stu_sex, stu_age from student;查询视图 …
一.将现有的myiasm引擎转化为innodb引擎 1.首先我们知道myisam有几点特别烦 a( 运用的是表级锁 b( 不支持csr(故障自动恢复) 2.mysql的5.1.177版本innodb引擎支持并不完善,到了5.6.38支持则非常完美,所以不要拿太低版本来做实验了 3.开始备份我们的数据 mysqldump -uroot -p123 库名 表名 >/tmp/a.sql 4.对备份进行处理,将引擎转化为engine sed -i 's#ENGINE=MYISAM#ENGINE=INNO…
MVCC MySQL INNODB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-VERSION Concurrency Control).MVCC最大的好处,相信也是耳熟能详:读不加锁,读写不冲突.在读多写少的OLTP应用中,读写不冲突是非常重要的,极大的增加了系统的并发性能,这也是为什么现阶段,几乎所有的RDBMS,都支持了MVCC. 在MVCC并发控制中,读操作可以分成两类:快照读 (snapshot read)与当前读 (current read).快照读,读取的是…
一.innodb的核心特点------事务 1.什么是事务 在一组数据操作执行步骤,这些步骤被视为一个单元,主要针对dml语句(update.delete.insert) 2.事务ACID特性 Atomic(原子性)所有语句作为一个单元全部成功执行或全部取消. Consistent(一致性)如果数据库在事务开始时处于一致状态,则在执行该.
事务期间将保留一致状态. Isolated(隔离性)事务之间不相互影响. Durable(持久性)事务成功完成后,所做的所有更改都会准确地记录在
数据库中.所…
在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB.究竟用哪种存储引擎好呢? 1.MyISAM:表锁:支持全文索引:读并发性能较好. 2.InnoDB:行锁:支持事务,支持外键:写并发性能较好. 实际上,现在大多数的公司里,mysql的规定都是使用InnoDB作为默认存储引擎,除了支持事务和行锁是比较重要的两个原因外,其实MyISAM在实际应用场景中意义也不大,并且一个重要原因是,官方支持力度大.oracle很早就收购了InnoDB,后面又收购了mysql,现在重点发展Inn…
如题,mysql数据库的中文显示乱码: 先看下原来数据库里的字符编码: mysql> show variables like '%character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | l…
和其他数据库相比,MySQL数据库的架构与众不同,它的架构可以在多种不同的场景中应用并发挥良好的作用:主要体现在存储引擎上的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据存储提取相分离:这种架构可以根据业务需求和实际需要选择合适的存储引擎. mysql逻辑架构 连接层 最上层时一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似tcp/ip的通信:主要完成一些类似于连接处理.授权认证.及相关安全的工作,在该层上引入了线程池的概念,为通过安全认证并接入…
一.查询缓存 "查询缓存",就是将查询的结果缓存下载,如果查询语句完全相同,则直接返回缓存中的结果. 如果应用程序在某个场景中,需要经常执行大量的相同的查询,而且查询出的数据不会经常被更新,那么,使用查询缓存会有一定的性能提升. 查看当前服务是否开启了查询缓存功能: MariaDB [ren]> show variables like '%query_cache%'; +------------------------------+---------+ | Variable_na…
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; - 不符合第一范式的例子(关系数据库中create不出这样的表): [表]字段1, 字段2(字段2.1, 字段2.2), 字…
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 表必须使用InnoDB存储引擎. 表必须使用“t_”开头命名. 表字符集选择UTF8. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE.金额建议使用BIGINT. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据…
普通文件的数据同步 nfs: 网络文件共享 samba: 共享数据 定时任务或守护进程结合 rsync.scp inotify(sersync)+rsync 触发式实时数据同步 ftp数据同步 ssh key + scp / rsync svn版本管理 rsync,sersync,inotify,union(双向同步),csync2(多向同步) mysql主从同步逻辑图 1. 单向主从同步 主-从 一主多从 2. 双向主主同步: 互为主从 (一般不采用) 3. 线性: 级联单向双主同步 4. 环…
一.建立适当的索引 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力.可是天下没有免费的午餐,查询速度的提高是以插入.更新.删除的速度为代价的,这些写操作, 增加了大量的I/O. 是不是建立一个索引就能解决所有的问题?ename上没有建立索引会怎样? select * from emp where ename='研发部'; ---测试案例命令如下 (最好以 select *…
向MySQL发送一个请求的时候,MySQL到底做了什么 客户端发送一条查询给服务器. 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划. MySQL根据优化器生成的执行计划,再调用存储引擎的API来执行查询. 将结果返回给客户端 一.缓存策略和相关配置 MySQL查询缓存保存查询返回的完整结构.当查询命中该缓存时,MySQL会立刻返回结果,跳过了解析.优化和执行阶段. 查询缓存系统会跟踪查询中涉及…
非关系型(NOSQL)数据库 键值存储数据库: memcached  /  redis  /  memcachedb  /  Berkeley db 列存储数据库: Cassandra  /  Hbase  (大公司才会用) 面向文档数据库: mongodb  /  couchdb 图形数据库: neo4j  /  infogrid  (用的少) 数据库种类 层次式数据库 网络式数据库 关系型数据库: 把复杂的数据结构归结为简单的二元关系, 对数据的操作全部建立在一个或多个关系表格上 而当今互联…
使用场景 资金紧张; 并发访问不大; 门户网站; 实现 生产硬件配置: mem 32G / 双cpu 8核 / 磁盘6*600G sas 15k, 2-3个实例 安装组件 #yum install ncurses-devel -y #yum install libaio-devel -y 结束旧mysql #cd ~ #pkill mysqld #ps -ef | grep mysql #rm –f /etc/init.d/mysqld 建立多实例环境 #mkdir -p /data/{3306…
针对mysql语句的临时办法: 先查看下mysql的各种编码设置情况, 如果结果显示有几项的编码不一致, 请先调整linux的系统编码 mysql> show variables like 'character_set%'; 登录mysql后, 先手动设置编码, 然后才开始执行insert/update等操作 mysql> set names 'utf8'; 在.sql文件中指定编码(set names 'utf8'), 然后登入mysql, 用source或mysql命令来导入sql语句 m…
一.MySQL索引原理 1.索引背景 生活中随处可见索引的例子,如火车站的车次表.图书的目录等.它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据. 数据库也是一样,但显然要复杂许多,因为不仅面临着等值查询,还有范围查询(>.<.between.in).模糊查询(like).并集查询(or)等等.数据库应该选择怎么样的方式来应对所有的问题呢?我们回想字典的例子,能不能把数据分成段,然后分段查询…
一.背景介绍 了解一个sql语句的执行过程,了解一部分都做了什么,更有利于对sql进行优化,因为你知道它的每一个连接.where.分组.子查询是怎么运行的,都干了什么,才会知道怎么写是不合理的. 大致执行顺序: select[distinct] from join(如:left join) on where group by having union order by limit 二.数据表准备 1.创建表 DROP TABLE IF EXISTS student; CREATE TABLE `…
mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. 一.介绍 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] 分表技术(水平分割.垂直分割) 读写[写: update/delete/add]分离 存储过程 [模块化编程,可以提高速度] 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] mysql服务器硬件升级…
启动原理 mysqld脚本-->mysqld_safe脚本-->mysqld服务-->启动mysql 强制关闭mysql: 三种方法, 不建议用! killall mysqld pkill mysqld killall -9 mysqld 优雅关闭mysql: 三种方法 mysqladmin -uroot -pabc123 shutdown /etc/init.d/mysqld stop kill -USR2 `cat path/pid` 登录 mysql -uroot -p 强制不记录…
一.创建用户和授权 下面的操作中,其中someusername为用户名,somepassword为密码,somedbname为数据库名 1.创建用户 create user 'someusername' identified by 'somepassword'; 2.授权 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON somedbname.* TO 'someusername'; 或者 grant all privileges on…
一.MySQL四舍五入函数ROUND(x) ROUND(x)函数返回最接近于参数x的整数,对x值进行四舍五入. 实例: 使用ROUND(x)函数对操作数进行四舍五入操作.SQL语句如下: mysql>SELECT ROUND(-2.34),ROUND(-4.56),ROUND(2.34),ROUND(4.56) 进行四舍五入处理以后,只保留了各个值的整数部分. 二.MySQL四舍五入函数ROUND(x,y) ROUND(x,y)函数返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则…
一.开启缓存 mysql 开启查询缓存可以有两种方法来开启一种是使用set命令来进行开启,另一种是直接修改my.ini文件来直接设置都是非常的简单的哦. 开启缓存,设置缓存大小,具体实施如下: 1.修改配置文件my.ini windows下是my.ini,linux下是my.cnf; 在配置文件的最后追加上: query_cache_type query_cache_size 需要重启mysql生效: 2.命令方式 那么采用第二种方式: b) 开启缓存,两种方式: a)使用mysql命令: ;…
准备 下载如下linux安装包 jdk-6u31-linux-x64-rpm.bin amoeba-mysql-binary-2.2.0.tar.gz # crontab -e  //同步时间 */ * * * * /usr/sbin/ntpdate 172.16.0.1 &>/dev/null # service iptables stop  //这几台服务器都要关闭防火墙 配置主从复制架构: 多主机 (ip和名称定义) 192.168.1.25  master 192.168.1.30 …