数据库
xuxiake的博客
it宅男
展开
-
mysql常用语句
创建数据库create database xxx配置用户并配置权限grant all on db.* to 'user'@'%' identified by 'passwd'修改密码校验规则set global validate_password_policy=0;set global validate_password_length=1;修改用户可以远程访问...原创 2019-10-19 09:49:07 · 179 阅读 · 0 评论 -
sysbench数据库性能测试基准
背景介绍我们如何判断一台数据服务器的性能呢?sysbench是一种行业基准,它通过各种指标来判断一个数据服务器的负载情况。安装sysbenchcurl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bashsudo yum -y install sys...原创 2019-10-15 19:47:39 · 449 阅读 · 0 评论 -
全面了解Mysql(九)备份与恢复
数据库备份种类按备份时数据库的状态分:1)热备份,数据库运行,且对数据库没有影响。2)冷备,数据库停止状态。3)温备,数据库运行,但是备份对数据库有影响。按备份后的文件内容分:1)逻辑备份,备份出来的文件内容可读。2)裸文件备份,备份的是数据库的物理文件,这种文件恢复速度快按照备份数据库内容来分:1)完全备份。2)增量备份,第一次完全备份,以后每次增量备份,主要依靠前面提到的lsn,以后备...原创 2019-10-11 18:06:53 · 279 阅读 · 0 评论 -
使用xtrabackup热备份mysql innodb数据
下载按装xtrabackup官网1) 可以使用命令wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm2)然后运行rpm -ivh percona-release-latest.noarch.rpm 按装源3)运行yum list | grep percona查看源,可以跳过4)运行yum instal...原创 2019-10-11 14:16:53 · 210 阅读 · 0 评论 -
全面了解Mysql(八)锁
锁是数据库中很重要的存在,但是也是最不怎么需要维护的,全篇基本都是概念性的,也是我最讨厌的知识点。mysql中分为lock和latch锁,我们常说的是lock,而latch是管理mysql线程的,不怎么需要维护。通过上图我们可以看出latch 等待次数。上面的图可以看出lock的一些信息innodb中的锁共享锁(S Lock)允许读一行数据排他锁(X Lock)允许事...原创 2019-10-10 20:26:48 · 187 阅读 · 0 评论 -
全面了解Mysql(七)事务
套话一般来说数据库事务需要满足ACID,A(atomicity)原子性,一个事务必须保证要么都做,要么都不做;C(consistency)一致性,一个事务开始和结束数据库的完整性约束没有被破坏;I(isolation)隔离性,各个事务之间相互分离彼此不干扰;D(durability)持久性,一旦事务结束,数据结果就是永久性的,不能因为宕机之类的数据不可恢复。事务实现mysql实现隔离性是通...原创 2019-10-10 14:08:04 · 177 阅读 · 0 评论 -
全面了解Mysql(六)索引、全文检索
B+树索引1)聚集索引每张表只能有一个聚集索引,按照主键构造的一颗B+树,叶子节点就是数据页,查询优化器倾向于聚集索引,因为聚集索引的叶子节点直接能找到数据,我们可用使用explain 进行分析索引的使用2)非聚集索引(辅助索引)非聚集索引中并不包含真实数据,而是有一个相应行的数据的聚集索引键,当查找数据时,先进行非聚集索引查询接着进行聚集索引查询才能找到真实数据。3)B+树索引分裂...原创 2019-10-07 19:44:37 · 198 阅读 · 0 评论 -
全面了解Mysql(五)表
表是顺序存放的mysql中所有的表都有主键,即使自己没有显示定义也会根据非空唯一索引,或者自动创建6字节大小的指针作为主键,当有多个非空唯一索引时按照索引定义顺序选择,这个表存储方式叫索引组织表。如果单个列为主键时可以通过查询语句加_rowid来查看哪个列作为了主键,因为他会和作为主键的值一样。innodb逻辑存储结构innodb逻辑存储由表空间组成,参数innodb_file_per...原创 2019-10-07 11:35:44 · 308 阅读 · 0 评论 -
linux系统shell脚本查询mysql数据库表信息输出到文件
有时候需要给不太懂mysql的用户提供一种快速查看mysql表信息的脚本,下面的shell整好符合要求#!/bin/bashDB_USER="DB_USER"DB_PASS="DB_PASS"DB_NAME="DB_NAME"DATE=`date +%F-%H-%M-%S`/usr/bin/mysql -u$DB_USER -p$DB_PASS -e "select count(1) ...原创 2019-09-25 15:05:06 · 1877 阅读 · 0 评论 -
全面了解Mysql(四)日志
错误日志使用命令SHOW VARIABLES LIKE ‘LOG_ERROR’ \G 可以查看错误日志的位置,当数据库宕机,不能正常使用时,首先应该查看该日志,其中也会存在一些警告,用户也可以通过该文件进行优化二进制日志记录了mysql数据库所有更改操作,不包括查询,慢查询日志查询日志...原创 2019-09-20 11:04:22 · 82 阅读 · 0 评论 -
全面了解Mysql(三)关键特性
插入缓冲1)概述如果主键是自动增长的,在插入的时候速度是非常快的,如果需要创建别的索引,聚集索引也是可以快速插入的,但是如果是非聚集索引,最好能是非唯一索引这样能触发insert buffer,引入插入缓冲的目的是防止频繁离散读取情况发生,首先将索引放入插入缓冲中,随后Master Thread会按条件合并其到索引页我们可以通过命令show engine innodb statuss...原创 2019-09-18 17:30:20 · 241 阅读 · 0 评论 -
全面了解Mysql(二)Thread
Master Thread工作方式每秒一次的操作有将日志缓存刷新到日志文件,即使事务没提交,每秒判断当前一秒内发生的IO次数是否小于5次,如果小于就进行合并插入缓冲,每秒判断当前缓冲池中脏页的比例是否超过innodb_max_dirty_pages_pct配置值,超过就刷新100个脏页到磁盘...原创 2019-09-17 16:41:39 · 322 阅读 · 0 评论 -
全面了解Mysql(一)
mysql基础定义数据库和实例是完全不同的,数据库是数据文件之类的,实例是用来操作数据的,一般一个数据库对应一个实例,分布式系统中可能会存在一个数据库对应多个数据实例,启动实例的方式有很多,例如./mysqld_safe&,启动实例首先会去读配置文件,如果不存在使用默认配置,读取配置文件的顺序,可以使用mysql --help |grep my.cnf查看(windows略微有点差别使...原创 2019-09-16 15:12:00 · 488 阅读 · 0 评论 -
mysql linux下编译
下载源码官网地址点击downloads按钮进入下载页面在下载页面点击MySQL Community (GPL) Downloads 进入社区版下载进入社区下载页点击社区service MySQL Community Server点击下载对应源码进入产品下载页解压源码,storage就是所有引擎源码引擎名称就是对应目录编译mysql1)进入解压后的BUILD目录,...原创 2019-09-16 11:43:44 · 122 阅读 · 0 评论 -
数据库update多条数据
数据库不提供想多条插入类似的语法,但是我们可以借助于case when来拼出一个常sql,当然这还是一条语句,update tabel1set 字段1 = case 条件字段 when 条件值1 then 字段1的值1 when 条件值2 then 字段1的值2 end , 字段2 = case 条件字段 when 条件值 then 字段2的值 end , 字段3 = case 条件字...原创 2019-09-02 17:20:55 · 14263 阅读 · 0 评论