【MySQL优化】教程文章相关的互联网学习教程文章

mysql优化 个人笔记 非礼勿扰 -m08【代码】【图】

binlog 简单使用 数据恢复1. 查看binlog状态show variables like %log%;2. 打开binlogvim /etc/my.cnf[mysqld]# binlog 配置log-bin =/var/lib/mysql/log-bin.log expire-logs-days = 14max-binlog-size = 500M server-id = 1重启 mysql: service mysqld restart;再次查看binlog日志 已经开启: show variables like log_bin;3. 创建数据库 创建表CREATE DATABASEIF NOT EXISTS binlog_test DEFAULT CHARSET utf8 COLLATE utf8_gen...

mysql优化 个人笔记 非礼勿扰 -m07【代码】【图】

Mysql基本架构图两种优化方式RBO 基于规则优化CBO 基于成本优化 这个用的多Mysql 日志1. binlog (server) 数据库data目录下的binlog文件show VARIABLES like %binlog% binary log恢复数据过程找到最近的一次全量备份数据从备份的时间点开始,将备份的binlog取出来,重放到恢复的那个时刻2. redolog (存储引擎 innodb) 数据库data目录下有这俩文件当发生数据修改时,innodb存储引擎会将记录下入到redo log中,并更新 内存,此时更新...

mysql优化 个人笔记 非礼勿扰 -m06【代码】【图】

索引分类1.主键索引主键是一种唯一索引,但他必须制定为PRIMARY KEY ,每个表只能有一个主键(一个主键指的不是一个列 也可能有多个列联合主键)其实主键没有的话 数据库会根据唯一键 建立索引 如果唯一键也没有 数据库会自动生成一个不可见的row_id作为记录唯一标示建立索引自增主键:是通过一个自增锁来实现的 如果新增失败 就会少几个值 没有特殊需求 可以用自增主键: 减少页的分裂 &合并2. 唯一索引索引列的所有值 只能出现一...

mysql优化 个人笔记 非礼勿扰 -m05【代码】【图】

一 、树树是一种递归数据结构,包含一个或多个数据节点的集合 其中一个节点被定为树的根,而其余节点被称之为根的子代。除根节点以外的其他节点均被划分为多个非空集合,其中每个集合都称为子树节点与节点之间的关系 要么是父子节点 要么是兄弟节点一个节点可以有多个子节点 但是只能有一个父节点根节点: 树中的最高节点 没有父节点 子树:根节点不为空 根节点的子树包含 叶子节点: 叶子节点是最低层的节点 叶子节点没有子节点 路...

mysql优化 个人笔记 非礼勿扰 -m04【代码】【图】

1. 索引干啥的加快查询效率!! 帮助mysql高效获取数据结构2. 索引怎么用-- 添加索引 ALTER TABLE `test` ADD INDEX `n_uid_title` (`uid`, `title`) USING BTREE ;-- 删除索引ALTER TABLE `test` DROP INDEX `n_uid_title` ;3. 索引存在哪儿磁盘 ? 内存 ? 当然是磁盘了~ sql查询的时候 会把磁盘中索引加载到内存。4. Mysql 简单架构客户端->服务端 服务端:连接器-》分析器-》优化器-》执行器 存储引擎:InnoDB MyISAM memory5....

mysql优化 个人笔记 非礼勿扰 -m03【代码】

数据源连接池1. druid 地址https://github.com/alibaba/ -> https://github.com/alibaba/druid 右侧有菜单通用配置 https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="url" value="${jdbc_url}" /> <property name="user...

mysql优化 个人笔记 非礼勿扰 -m02【代码】【图】

1. processlist功能:查看连接数 注意:自己创建连接 一定要关闭连接!! 现在项目都用数据源 这个基本不用自己管(DBCP,c3p0,Druid(https://github.com/alibaba/druid),HiKariCP)字段说明List itemid : sessionIduser:操作用户host:操作主机 端口db: 操作的数据库command: 表示命令类型info:表示详细的sql语句time:表示相应命令执行时间state:表示命令执行状态schema 与数据类型优化1. 数据类型的优化更小的通常更好 他们占用...

mysql优化 个人笔记(mysql安装 + profile + performance schema) 非礼勿扰 -m01【代码】【图】

感谢:http://mashibing.com/mysql安装修改cnetos6.5yum镜像地址 https://developer.aliyun.com/mirror/centos查看系统中是否自带安装mysqlyum list installed | grep mysql删除系统自带的mysql及其依赖(防止冲突)yum -y remove mysql-libs.x86_64安装wget命令(如果没有) yum install wget -y给CentOS添加rpm源,并且选择较新的源wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm 获取到 https://dev.mysql.com/...

mysql优化 个人笔记 (mysql 主从复制 ) 非礼勿扰 -m11【代码】【图】

1、为什么需要主从复制在业务中 有一条sql需要锁表 就会导致其他读业务不能执行 ,那么就很影响业务,使用主从复制,让主库写,从库读。这样即使主库出现锁表情况,从库也可以正常使用,保证业务正常进行做数据热备架构的扩展 ,业务量越来越大,I/O访问频率过高,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能2、什么是主从复制Mysql主从复制是指数据可以从一个Mysql数据库服务器主节点中复制到另一个或多个从...

mysql优化 个人笔记 (mysql锁机制 ) 非礼勿扰 -m10【代码】【图】

锁机制A : undolog 实现 C : I :锁实现 D :redolog实现1. mysql锁基本介绍锁是计算机协调多个进程或线程并发访问某一资源的机制 在数据库中 除了传统的计算机资源(CPU RAM I/O等)的的争用外, 数据也是一种共享资源,如何保证数据访问的一致性,有效性? 是所有数据库必须要解决的问题。 锁冲突也是影响数据库访问的一个重要因素。 从这个角度看,锁机制很重要。相对其他数据库而言,mysql的锁机制比较简单,不同的存储引擎支...

mysql优化 个人笔记 - 非礼勿扰 -m17【代码】【图】

上一篇讲到了 datadir、socket、pid_file、port、default_storage_engine、skip-grant-tables、character_set_client、character_set_connection、character_set_results、character_set_database、character_set_server、max_connections、max_user_connections、back_log、wait_timeout、interactive_timeout3. 日志log_error 指定错误日志文件名,用于记录当前mysql 启动和停止时,以及服务器在运行中发生的错误等相关信息log_b...

mysql优化 个人笔记 - 非礼勿扰 -m16【代码】【图】

一 、 服务器参数设置vim /etc/my.conf1. 通用设置#数据文件存放目录datadir=/var/lib/mysql # mysql.socket表示server和client在同一台服务器,# 并且使用localhost进行连接,就会使用socket进行连接socket=/var/lib/mysql/mysql.socket# 存储mysql的pid # pid 可以去对应目录进行查找pid # ps -ef |grep mysql 也可以查看pidpid_file=/var/lib/mysql/mysql.pid # 端口号port=3306 #默认存储引擎 建表的时候可以指定存储引擎 ...

MySQL优化实战学习笔记(二)【代码】

6 数据库测试工具 6.1 在Linux上安装sysbench curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.ch | sudo bash sudo yum -y install sysbench sysbench --version6.2 数据库压力测试用例 sysbench --db-driver=mysql --time=300 --thread=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=2...

MySQL优化实战学习笔记(一)

1 Mysql与系统的交互 1.1 Mysql驱动 Mysql驱动的功能:在底层建立网络连接。才能够帮助我们发送请求给数据库服务器。 1.2 数据库连接池 当我们多线程的处理请求的时候,显然不可能只用一个数据库连接,然后不停的建立连接、删除连接。效率太差了。 因此需要构建一个数据库连接池,在这个连接池子中有很多个数据库连接。 当sql语句执行结束后,不要销毁这个连接,而是放回数据库连接池中,下次再用 2 Mysql的架构设计 2.1 监听和读取...

MySQL优化

【建表原则】 定长与边长相分离 常用与不常用相分离 适当反范式 【列类型选择】 int > date,time > enum,char > varchar > blob,text 字符串相对于整形要考虑字符集和校对集 尽量不用NULL 【btree索引 hash索引】 有必要使用联合索引(多列索引、复合索引)(左前缀原则)要考虑列顺序 分析sql explain 查询语句 \G; 【聚簇索引(innodb) 非聚簇索引(myisam)】 innodb 次级索引指向对主键的引用(因为主键索引下是数据) 页分裂:按主...