
MySql
ciqingloveless
这个作者很懒,什么都没留下…
展开
-
Centos7 关闭numa
numa原创 2022-10-28 11:40:25 · 548 阅读 · 0 评论 -
MYSQL8 根据IBD恢复表结构
MYSQL根据IBD恢复表原创 2022-07-25 20:05:28 · 1616 阅读 · 1 评论 -
Mariadb指定数据库进行主备,无法恢复数据异常总结
在进行mariadb进行主备同步时,指定了某个数据库,但是忽然某一天显示同步失败,主备同步停止了,然后进行排查,mariadb进行主备同步时是通过use database;来过滤是否当前数据库的操作,所以假如你在其他库操作需要同步的库时,会出现同步问题...原创 2021-08-31 13:46:56 · 337 阅读 · 0 评论 -
Mariadb多实例安装
编辑my.cnfvi /etc/my.cnf#[mysqld_multi]#mysqld = /app/mariadb/bin/mysqld_safe#mysqladmin = /app/mariadb/bin/mysqladmin#user = root #只能root管理[mysqld]#datadir=/var/lib/mysql#socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended原创 2020-10-28 15:03:33 · 486 阅读 · 0 评论 -
centos7 安装部署Mariadb10.4集群,并且在线搭建备库
安装xtrabackup (非必须)1 下载https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.14/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.14-1.el7.x86_64.rpmwget ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6原创 2020-10-17 11:44:13 · 1258 阅读 · 0 评论 -
12.MySQL优化Outer Join Simplification讲解
介绍在许多情况下,简化了查询的FROM子句中的表的表达式。在解析器阶段,具有右外连接操作的查询将转换为仅包含左连接操作的等效查询。在一般情况下,转换是这样执行的:(T1, ...) RIGHT JOIN (T2, ...) ON P(T1, ..., T2, ...)等价的left join为:(T2, ...) LEFT JOIN (T1, ...) ON P(T1, ..., T...原创 2018-11-05 17:11:25 · 259 阅读 · 0 评论 -
23.MySQL优化Row Constructor Expression Optimization
介绍行构造函数允许同时比较多个值。举例来说,这两个语句在语义上是等价的:SELECT * FROM t1 WHERE (column1,column2) = (1,1);SELECT * FROM t1 WHERE column1 = 1 AND column2 = 1;同时,优化器采用相同的方式处理两个SQL语句。如果行构造函数列未覆盖索引的前缀,则优化程序不太可能使用可用索引。思考...原创 2018-11-13 13:35:11 · 374 阅读 · 0 评论 -
16.MySQL优化IS NULL
介绍MySQL可以执行相同的优化col_name IS NULL和col_name = constant_value。例如,MySQL可以使用索引扫描和索引范围扫描查询NULL值, col_name IS NULL。SELECT * FROM tbl_name WHERE key_col IS NULL;SELECT * FROM tbl_name WHERE key_col <=&...原创 2018-11-08 10:35:02 · 1291 阅读 · 0 评论 -
24.MySQL优化Avoiding Full Table Scans
介绍当使用全表扫描时EXPLAIN 的type字段输出ALL。通常以下情况可能趋向于全表扫描:表很小,全表扫秒比使用索引扫描更快,这对于行少于10行且行长度较短的表来说很常见。当ON或者WHERE条件中没有索引可以使用的条件时。将索引与常量值进行了比较,并且索引通过计算发现,这个常量值覆盖了整个表的大部分,通过全表扫描比索引扫描更快。使用的列的区分度较低(很多行匹配了键值),然后查询索...原创 2018-11-13 17:22:47 · 467 阅读 · 0 评论 -
17.MySQL优化ORDER BY 优化
介绍本节描述MySQL何时可以使用索引来满足ORDER BY子句,无法使用索引时使用的filesort操作,和优化器提供的有关ORDER BY的执行计划信息。一个ORDER BY有和没有 LIMIT可能以不同的顺序返回行:使用索引来优化ORDER BY使用filesort来优化ORDER BY影响ORDER BY优化可用的执行计划信息收集使用索引来优化ORDER BY在某些情况...原创 2018-11-08 19:07:01 · 340 阅读 · 0 评论 -
6.MySQL优化Bulk Data Loading for InnoDB Tables
介绍优化InnoDB的方法:导入数据时InnoDB,请关闭自动提交模式,因为它会为每个插入执行磁盘日志刷新。要在导入操作期间禁用自动提交,请使用SET autocommit和 COMMIT语句将其 括起来: SET autocommit=0; ... SQL import statements ... COMMIT;mysqldump的–opt参数创建一个dump文件可以快...原创 2018-11-15 14:10:38 · 197 阅读 · 0 评论 -
15.MySQL优化Condition Filtering
介绍在连接处理中,前缀行是从连接中的一个表传递到下一个表的那些行。通常,优化器尝试在连接顺序的早期放置具有低前缀计数的表,以保持行组合的数量不会快速增加。在某种程度上,优化器可以利用一些条件信息查询表中需要的行传递给下一个,它可以更准确地计算行估计并选择最佳执行计划。假如没有条件过滤,表的前缀行数是基于各种优化器的访问方法根据Where条件进行的估量估计。Condition filtering...原创 2018-11-07 15:23:16 · 578 阅读 · 2 评论 -
14.MySQL优化Block Nested-Loop and Batched Key Access Joins
介绍在MySQL中,Batched Key Access (BKA) Join algorithm该算法用于对联接表和连接缓冲区的索引访问。BKA算法支持内连接,外连接和半连接操作,包括嵌套外连接。BKA的优点包括由于更高效的表扫描而提高了连接性能。此外,先前仅用于内连接的块嵌套循环(BNL)连接算法已扩展,可用于外连接和半连接操作,包括嵌套外连接。以下部分讨论了连接缓冲区管理,它是原始BNL...原创 2018-11-07 10:29:57 · 373 阅读 · 0 评论 -
11.MySQL优化Outer Join Optimization
介绍Outer joins包含LEFT JOIN和RIGHT JOIN.MySQL实现了一个A LEFT JOIN B join_condition,如下所示:表B设置为依赖于表A和A所依赖的所有表。表A设置为依赖于LEFT JOIN条件中使用的所有表(B除外)。LEFT JOIN条件用于决定如何从表B中检索行。(换句话说,不使用WHERE子句中的任何条件。)执行所有标准连接优化,但...原创 2018-11-02 15:18:13 · 288 阅读 · 0 评论 -
13.MySQL优化Multi-Range Read Optimization
介绍在二级索引上使用范围扫描读取行可能会导致在表很大并且未存储在存储引擎的缓存中时对基表进行许多随机磁盘访问。通过磁盘扫描多范围读取(MRR)优化,MySQL尝试通过首先扫描索引并收集相关行的密钥来减少范围扫描的随机磁盘访问次数。然后对键进行排序,最后使用主键的顺序从基表中检索行。磁盘扫描MRR的动机是减少随机磁盘访问的次数,而是实现对基表数据的顺序扫描。多范围读取优化提供以下好处:MRR...原创 2018-11-06 14:58:12 · 311 阅读 · 0 评论 -
10.MySQL优化Nested Join Optimization
介绍table_factor是对SQL标准的一个扩展。后者只接受table_reference,而不能接受一对括号内的列表。SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)等价于SELECT * FROM t1 LEFT JOIN (t2 ...原创 2018-11-01 19:50:31 · 245 阅读 · 0 评论 -
9.MySQL优化Nested-Loop Join Algorithms
介绍MySQL使用嵌套循环算法或其变体在表之间执行连接。Nested-Loop Join AlgorithmBlock Nested-Loop Join Algorithm1 Nested-Loop Join Algorithm简单的Nested-Loop算法意思就是,从第一张表读取一条记录,然后与第二张表的每一行进行循环比对,达成表连接目的,然后再从第一张表读取一条记录与第二张表的...原创 2018-10-31 20:29:54 · 586 阅读 · 0 评论 -
2.MySQL优化概述
介绍数据库性能取决于数据库级别的几个因素,例如表,查询和配置设置。 这些软件结构导致硬件级别的CPU和I/O操作,必须尽可能地降低这些操作并使其尽可能高效。 在处理数据库性能时,首先要了解软件方面的高级规则和指南,并使用挂钟时间来衡量性能。1 在数据库级别进行优化1.1 基本原则对于表设计,针对更新插入频繁的系统,应该在采用列数较少的表,而再进行统计查询时,应该使用少量的列多的大表避免关...原创 2018-10-24 11:44:58 · 212 阅读 · 0 评论 -
8.MySQL8.0索引条件下推优化(ICP)
介绍索引条件下推(ICP)是对MySQL使用索引从表中检索行的情况的优化。 如果没有ICP,存储引擎会遍历索引以查找基表中的行,并将它们返回给MySQL服务器,该服务器会评估行的WHERE条件。 启用ICP后,如果只使用索引中的列来评估WHERE条件的某些部分,MySQL服务器会将WHERE条件的这一部分推送到存储引擎。 然后,存储引擎通过使用索引条目来评估推送的索引条件,并且仅当满足该条件时才...原创 2018-10-31 14:40:34 · 1010 阅读 · 0 评论 -
7.MySQL优化Optimizing InnoDB Queries
介绍要调整InnoDB表的查询,请在每个表上创建一组适当的索引。请遵循以下InnoDB索引指南:因为每一张表都需要一个主键(无论你是不是想要),为每个表指定一组主键列,在某些查询中使用主键可以极大提高查询效率。不要使用过多的列组合或者过长的列当主键,因为主键会被引入到二级索引中。当二级索引包含不必要的数据时,读取此数据的I/O和用于缓存它的内存会降低服务器的性能和可伸缩性。不要为每列创建...原创 2018-11-15 14:37:58 · 164 阅读 · 0 评论 -
8.MySQL优化Optimizing InnoDB DDL Operations
介绍很多的表与索引的DDL操作(CREATE, ALTER, and DROP statements),可以在线操作。在线DDL支持添加二级索引意味着您通常可以通过创建没有二级索引的表来加速创建和加载表及相关索引的过程,然后在加载数据后添加二级索引。使用 TRUNCATE TABLE 来清空表,不要使用 DELETE 。外键约束可以使TRUNCATE语句像常规DELETE语句一样工作,在这...原创 2018-11-15 15:00:25 · 181 阅读 · 0 评论 -
9.MySQL优化Optimizing InnoDB Disk IO
介绍如果您遵循SQL操作的数据库设计和调优技术的最佳实践,但由于磁盘I/O活动繁重,您的数据库仍然很慢,请考虑这些磁盘I/O优化。如果Unix top工具或Windows任务管理器显示您的工作负载的CPU使用率百分比低于70%,则您的工作负载可能是磁盘造成的。增大buffer pool size当表的数据被缓冲到InnoDB的buffer pool中时,可以在查询中重复访问这些数据而不用...原创 2018-11-15 16:36:21 · 276 阅读 · 0 评论 -
5.MySQL优化Optimizing InnoDB Redo Logging
#介绍优化InnoDB Redo Logging可以考虑以下方法:确保Redo Logging足够大,最好与buffer pool一样大。当InnoDB将redo log文件写满之后,他必须将buffer pool的数据修改写入到磁盘的 checkpoint中。过小的redo log可能会产生很多不必要的磁盘写入,虽然在以前的版本中大的redo log可能会导致恢复时间变得很长,但现在已经...原创 2018-11-15 11:35:03 · 452 阅读 · 0 评论 -
4.MySQL优化Optimizing InnoDB Read-Only Transactions
介绍InnoDB可以避免为已知只读事务设置事务ID的开销(TRX_ID)。只有可能执行写操作或锁定读取的事务(例如SELECT … FOR UPDATE)才需要事务ID。消除不必要的事务ID会减少每次查询或数据更改语句构造读取视图时所咨询的内部数据结构的大小。InnoDB 在以下情况下检测只读事务:这个事务以START TRANSACTION READ ONLY 语句开始。在这种情况下,...原创 2018-11-15 10:57:09 · 606 阅读 · 2 评论 -
3.MySQL优化Optimizing REPAIR TABLE Statements
介绍REPAIR TABLE对于 MyISAM表类似于使用 myisamchk进行修复操作,并且一些相同的性能优化适用:myisamchk具有控制内存分配的变量。您可以通过设置这些变量来提高性能。对于REPAIR TABLE,他与myisamchk的原理相同,但是因为修复是由服务器完成的,所以设置服务器系统变量而不是myisamchk变量。此外,除了设置内存相关参数之外,还可以增加 my...原创 2018-11-16 14:31:24 · 201 阅读 · 0 评论 -
2.MySQL优化Optimizing MyISAM Queries
介绍以下内容可以提高MyISAM数据插入效率:对于MyISAM引擎的表,你可以在查询的时候使用并发插入,你只要保证在数据文件的中间没有删除的记录。通过一些额外的工作,当表具有许多索引时,可以使表LOAD DATA INFILE更快地 运行 MyISAM。使用以下过程:执行FLUSH TABLES 语句或mysqladmin flush-tables命令。使用myisamchk ...原创 2018-11-16 14:00:31 · 438 阅读 · 0 评论 -
22.MySQL优化Window Function Optimization
介绍窗口函数会影响优化程序考虑的策略:假如一个子查询具有窗口函数则关闭Derived table(派生表),子查询始终使用materialized。举例如下: EXPLAIN SELECT * FROM (SELECT * FROM city WHERE population > 10*1000) AS big_city WHERE big_city.cou...原创 2018-11-12 19:59:15 · 456 阅读 · 0 评论 -
3.MySQL优化Optimizing InnoDB Transaction Management
介绍想要优化InnoDB的事务处理,需要在事务功能的性能开销和服务器的工作负载之间找到平衡。举个例子,一个应用每秒提交上千次或者一个应用2-3小时提交一次,这样都会遇到性能问题。默认的MySQL设置AUTOCOMMIT=1可能对插入繁忙的数据造成性能瓶颈。在可行的情况下,通过SET AUTOCOMMIT=0或START TRANSACTION等指令,将相关的SQL放到同一事务中进行批量处理...原创 2018-11-14 17:02:15 · 228 阅读 · 0 评论 -
2.MySQl优化Optimizing Storage Layout for InnoDB Tables
介绍一旦数据达到稳定大小,或者一张表增加了几十或几百兆字节,请考虑使用该OPTIMIZE TABLE语句重新组织表并压缩任何浪费的空间。重组表可以较少全表扫描的磁盘I/O操作。这个技术可以在其他方式无法优化时提高性能。OPTIMIZE TABLE复制表数据并且重建索引,重建索引可以优化索引结构,减少表空间和磁盘碎片。这个优化效果取决于表的数据量。这个优化可能根据不同的数据库产生不同的效果,...原创 2018-11-14 16:25:43 · 184 阅读 · 0 评论 -
21.MySQL优化Function Call Optimization
介绍MySQL内部标记为确定性的和非确定性的。如果函数式不确定性的,非确定性函数的定义是对于固定的输入,返回不固定的返回值,例如RAND(), UUID().假如一个函数被标记为不确定的,WHERE则会为每一行(从一个表中选择时)或行组合(从多表连接中选择时)评估子句中对它的引用。MySQL中的确定性函数的定义是,对于一个固定的参数,总会返回一个固定的返回值。一个确定性函数使用表的列作为参数...原创 2018-11-12 16:29:36 · 224 阅读 · 0 评论 -
20.MySQL优化LIMIT Query Optimization
介绍如果只需要结果集中指定数量的行,请LIMIT在查询中使用子句,而不是获取整个结果集并丢弃额外数据。MySQL可以优化包含 LIMIT row_count 但没有HAVING的查询假如使用LIMIT扫描少数行,MySQL在某些情况下使用索引,通常情况下它更喜欢进行全表扫描。假如LIMIT与ORDER BY进行组合,MySQL会在找到排序结果的第一行后立即停止排序 ,而不是对整个结果进行...原创 2018-11-12 15:33:13 · 189 阅读 · 0 评论 -
20.MySQL优化LIMIT Query Optimization
介绍如果只需要结果集中指定数量的行,请LIMIT在查询中使用子句,而不是获取整个结果集并丢弃额外数据。MySQL可以优化包含 LIMIT row_count 但没有HAVING的查询假如使用LIMIT扫描少数行,MySQL在某些情况下使用索引,通常情况下它更喜欢进行全表扫描。假如LIMIT与ORDER BY进行组合,MySQL会在找到排序结果的第一行后立即停止排序 ,而不是对整个结果进行...原创 2018-11-12 15:27:08 · 414 阅读 · 0 评论 -
1.MySQL优化Optimizing for InnoDB Tables
介绍Optimizing Storage Layout for InnoDB TablesOptimizing InnoDB Transaction ManagementOptimizing InnoDB Read-Only TransactionsOptimizing InnoDB Redo LoggingBulk Data Loading for InnoDB TablesOpt...原创 2018-11-14 10:57:38 · 207 阅读 · 0 评论 -
19.MySQL优化DISTINCT Optimization
= 介绍最常用的优化 GROUP BY 的方式就是扫描整张表然后创建临时表在临时表中保证所有数据分成不同的组,每个组里的数据都是连续的,然后利用临时表来发现组并应用聚合函数(假如有的话)。在某些情况下,MySQL可以做的更好,它可以使用索引避免使用临时表。使用索引优化GROUP BY的一个非常重要的先决条件是,GROUP BY中引用的属性需要在同一个索引中,并且索引是有序的(举个例子,可以使用...原创 2018-11-12 11:20:17 · 273 阅读 · 0 评论 -
18.MySQL优化GROUP BY Optimization
介绍最常用的优化 GROUP BY 的方式就是扫描整张表然后创建临时表在临时表中保证所有数据分成不同的组,每个组里的数据都是连续的,然后利用临时表来发现组并应用聚合函数(假如有的话)。在某些情况下,MySQL可以做的更好,它可以使用索引避免使用临时表。使用索引优化GROUP BY的一个非常重要的先决条件是,GROUP BY中引用的属性需要在同一个索引中,并且索引是有序的(举个例子,可以使用Bt...原创 2018-11-12 10:59:45 · 199 阅读 · 0 评论 -
1.MySQL优化Optimizing MyISAM Queries
介绍以下方法可以提高MyISAM引擎的查询效率:为了帮助MySQL更好的优化查询,当一个表加载了数据之后可以使用 ANALYZE TABLE或者myisamchk --analyze分析表。这会更新每个索引部分的值,以指示具有相同值的平均行数,(对于unique indexes,这个是一直是1)MySQL使用它来决定在基于非常量表达式连接两个表时选择哪个索引。可以使用SHOW INDEX ...原创 2018-11-15 17:32:24 · 249 阅读 · 0 评论 -
13.基于时间点的恢复
介绍恢复完整备份后,您需要还原二进制日志以获取时间点恢复。 备份提供备份可用的二进制日志位置。操作1 mysqldump or mysqlpumpbinary log信息根据传递给mysqldump/mysqlpump的选项作为CHANGE MASTER TO命令存储在SQL文件中。1.1 如果使用–master-data参数导出的备份集,则应使用slave的二进制日志在slave数据...原创 2018-10-24 10:21:10 · 502 阅读 · 0 评论 -
12.恢复flat file备份
介绍从平面文件中恢复需要您停止MySQL服务器,替换所有文件,更改权限并启动MySQL。操作1 停止MySQL服务器shell> systemctl stop mysql2 将文件移动到数据库指定路径shell> mv /backup/mysql /var/lib3 修改权限shell> chown -R mysql:mysql /var/lib/mysql...原创 2018-10-24 10:20:34 · 154 阅读 · 0 评论 -
11.使用myloader从mydumper恢复
介绍myloader是一个用于使用mydumper进行多线程恢复备份的工具。 myloader与mydumper已经同时安装,不需要单独安装它。配置1 全库恢复shell> myloader --directory=/backups --user=<user> --password=<password> --queries-per-transaction=50...原创 2018-10-24 10:17:42 · 907 阅读 · 0 评论 -
1.性能调优概览
介绍Optimization Overview 优化概述Optimizing SQL Statements 优化SQL语句Optimization and Indexes 优化和索引Optimizing Database Structure 优化数据库结构Optimizing for InnoDB Tables 优化InnoDB表Optimizing for MyISAM Table...原创 2018-10-25 10:09:50 · 168 阅读 · 0 评论