
数据库
文章平均质量分 53
way_more
You can be way more.
展开
-
Mysql三种常用的删除方式
mysql三种删除方式原创 2024-01-17 10:55:39 · 693 阅读 · 0 评论 -
多租户数据隔离分案
多租户数据隔离方案原创 2024-01-10 15:01:10 · 1071 阅读 · 0 评论 -
MySQL如何查看线程信息?看完就懂了
目录前言SHOW PROCESSLIST前言在某些情况下,我们可能需要找出Mysql的某个线程。比如在发生死锁的时候,我们可以相应找到锁线程,然后把它kill 。那么,如何查看MySQL的线程信息呢?使用下面这个命令就可以了SHOW PROCESSLISTSHOW PROCESSLIST语句可以查看MySQL的线程信息。SHOW PROCESSLIST可以显示哪些线程正在运行和相关的信息。语法:SHOW [FULL] PROCESSLIST不在mysql提示符下使用时用mysql -uro原创 2021-02-04 21:49:59 · 7629 阅读 · 0 评论 -
MySQL 服务器日志太多了怎么维护?看完你就懂了
目录前言服务器日志维护前言MySQL Server可以创建多种不同的日志文件来帮助您查看发生在MySQL的各种操作行为。但是,您必须定期清理这些文件,以确保日志不会占用过多的磁盘空间。服务器日志维护对于二进制日志,可以设置expire_logs_days系统变量,设置之后会在指定的天数后自动使二进制日志文件失效(删除)。如果使用复制,则应将变量设置为不低于副本可能滞后于源的最大天数。例:在配置文件配置二进制日志文件有效期为5天[mysqld]#设置二进制日志文件的有效期expire_log原创 2020-12-30 21:15:39 · 811 阅读 · 0 评论 -
MySQL三大日志之慢查询日志
目录慢查询日志慢查询日志参数慢查询日志内容慢查询日志慢速查询日志由执行时间超过long_query_time秒的SQL语句组成,这些语句至少需要检查min_examined_row_limit行(即检查的行数少于此数目的查询不会被记录到慢速查询日志,默认值为0)。慢查询日志可用于查找执行时间较长的查询,因此可以作为优化的候选对象。但是,检查较长的慢查询日志可能是一项耗时的任务。为了使此操作更容易,您可以使用 mysqldumpslow命令来处理慢速查询日志文件并总结其内容。获取初始锁的时间不算作执行原创 2020-12-27 20:27:38 · 521 阅读 · 1 评论 -
MySQL复制线程
目录复制线程总结复制线程MySQL复制功能是通过以下三个主要线程实现的,其中一个在源服务器上,另两个在副本服务器上:二进制日志转储线程(Binary log dump thread)。源创建一个线程,以便在副本连接时将二进制日志内容发送到副本。可以SHOW PROCESSLIST在源的输出中将该线程标识为BinlogDump线程。二进制日志转储线程会获取源二进制日志上的一个锁,以便读取要发送到副本的每个事件。一旦读取了事件,锁就会被释放,甚至在事件被发送到副本之前。复制I / O线程原创 2020-12-26 20:05:51 · 597 阅读 · 0 评论 -
你必须要懂的MySQL错误日志,解决bug的一把手!
目录前言错误日志(Error Log)Unix和类似Unix的系统上记录错误日志Windows上记录错误日志错误日志过滤错误日志输出格式前言在我们使用MySQL的时候,往往会碰到各种错误。而MySQL错误日志可以帮我们记录这些错误,看错误日对我们解决问题是非常重要的。下面我们就来看一下如何开启和使用错误日志。错误日志(Error Log)MySQL的错误日志包含mysqld启动和关闭时间的记录。它还包含诊断消息,如错误、警告和注意事项,这些消息发生在服务器启动和关闭期间以及服务器运行期间。例如,如果原创 2020-12-23 21:13:31 · 3232 阅读 · 0 评论 -
MySQL复制格式大解析
目录前言复制格式基于语句的复制和基于行的复制的优缺点基于语句的复制的优点基于语句的复制的缺点基于行的复制的优点基于行复制的缺点前言以下内容基于MySQL5.7官方文档复制格式复制之所以有效,是因为从源读取了写入二进制日志的事件,然后在副本上对其进行了处理。根据事件的类型,事件以不同的格式记录在二进制日志中。使用的复制格式对应于将事件记录在源的二进制日志中时使用的二进制日志记录格式。二进制日志记录格式有以下三种:使用基于语句的二进制日志记录时,源会将SQL语句写入二进制日志。将源复制到副本可以通过翻译 2020-12-22 21:30:44 · 410 阅读 · 0 评论 -
看完你就懂什么是Mysql主从复制了
目录前言Mysql Replication基于二进制日志文件位置的复制复制的相关配置前言以下内容基于MySQL5.7官方文档Mysql Replication可以将一台MySQL数据库服务器(源)中的数据复制到一台或多台MySQL数据库服务器(副本)中。默认情况下,复制是异步的,性能较好;副本无需永久连接即可从源接收更新。根据配置,您可以复制数据库中的所有数据库,选定的数据库,甚至选定的表。MySQL中复制的优点包括:横向扩展解决方案-在多个副本之间分散负载以提高性能。在这种环境下,所有写入翻译 2020-12-21 20:56:38 · 211 阅读 · 0 评论 -
一看就会的Mysql 主从复制(MySQL Replication)实战!
目录前言实战测试主从复制前言MySQL主从复制可以将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。MySQL复制的优点包括:横向扩展解决方案-在多个副本之间分散负载以提高性能。在这种环境下,所有写入和更新都必须在复制源服务器(主服务器)上进行。但是,读取可能发生在一个或多个副本(从服务器)上。该模型可以提高写入性能(因为源专用于更新),同时可以在越来越多的副本中显着提高读取速度。数据安全性-因为数据已复制到副本,并且副本可以暂停复制过程,所以可以原创 2020-12-20 21:14:42 · 518 阅读 · 0 评论 -
MySQL主从复制的两个重要配置参数,你知道吗?
目录前言innodb_flush_log_at_trx_commitsync_binlog前言我们在配置MySQL主从复制的时候,除了必要的配置参数外,往往还会配置这两个参数:innodb_flush_log_at_trx_commit和sync_binlog,下面我们就来看一下这这个参数的作用innodb_flush_log_at_trx_commit提交事务的时候将 redo 日志写入磁盘中,所谓的 redo 日志,就是记录下来你对数据做了什么修改,比如对 “id=10 这行记录修改了 nam转载 2020-12-20 20:54:32 · 319 阅读 · 1 评论 -
mysql自带的备份神器--mysqldump
目录前言Mysqldump命令调用语法使用mysqldump进行备份前言在很多时候,我们会需要对mysql进行备份转移等操作。备份的方法有很多种,其中有一种是mysql自带的,那就是mysqldump。Mysqldump命令mysqldump工具是mysql自带的一个客户端应用程序,在mysql安装目录的/bin目录下。mysqldump用于逻辑备份,它能生成一组SQL语句,执行这些语句可以重新生成原始的数据库对象定义和表数据。mysqldump常用于转储一个或多个MySQL数据库以进行备份或转移到翻译 2020-12-19 20:09:34 · 1348 阅读 · 1 评论 -
初识MySQL临时表(内部和外部)
目录临时表外部临时表内部临时表临时表顾名思义,临时表就是临时用来存储数据的表,是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作。我们常使用临时表来存储中间结果集。如果需要执行一个很耗资源的查询或需要多次操作大表时,可以把中间结果或小的子集放到一个临时表里,再对这些表进行查询,以此来提高查询效率。临时表主要适用于需要临时保存数据的一些场景。一般情况下,临时表通常是在应用程序中动态创建或者由 MySQL 内部根据需要自己创建。临时表可以分为内部临时表和外部临时表。外部临时表转载 2020-12-13 21:17:08 · 1364 阅读 · 0 评论 -
mysql新建数据库字符集与排序规则的选择
目录字符集选择排序规则字符集选择一般选择utf8.下面介绍一下utf8与utfmb4的区别。utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到 http://blog.csdn.net/leelyliu/article/details/52879685看unicode编码区从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以上就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。排转载 2020-12-13 20:54:51 · 2856 阅读 · 0 评论 -
十分钟学会MySQL的下载安装(Linux版本),看了的都会
目录下载MySQL安装MySQL下载MySQL选择自己想要下载的MySQL版本,进行下载官网下载地址:https://downloads.mysql.com/archives/community/下面我以5.7.24为例进行下载安装参数说明:Product Version:产品版本,即MySQL的版本Operating System:操作系统,Linux系统可以选择Linux Generic(Linux通用)OS Version:系统版本,x86,64bit为64位,x86,32bit为原创 2020-12-12 20:11:20 · 550 阅读 · 0 评论 -
MySQL配置参数详解,配置前必看
目录前言配置文件位置配置文件参数前言要配置MySQL,必须要先了解MySQL的各种配置。配置文件位置MySQL在不同系统,配置文件的位置和文件格式也有所不同,下面主要介绍下windows和linux的配置文件位置,大家安装MySQL之后,可以看看默认配置文件Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录。Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf,如果安装的时候没有做什么修改,那么它的默认路径原创 2020-12-10 21:11:17 · 6957 阅读 · 0 评论 -
MySQL的执行加载顺序,简单明了!
手写顺序SELECT DISTINCT <select list>FROM <left_table> join <join_type> JOIN <right_table> ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <转载 2020-12-01 21:53:37 · 353 阅读 · 0 评论 -
来谈谈MySQL事务及事务引发的问题
目录前言四大特性事务引发的问题事务的隔离级别问题的解决前言说起事务,肯定能够想到这样一句话,这个事情要么不做,要么做完;或者是好兄弟不求同年同月同日生,但求同年同月同日死。有点过分,但是是这个理儿。四大特性我们都知道,提到事务,就不能不提事务的四大特性,ACID,即原子性,一致性,隔离性,持久性。原子性(Atom):事务的一组操作是原子的不可再分割的,这组操作要么同时完成要么同时不完成。一致性(Consistency): 事务在执行前后数据的完整性保持不变。数据库在某个状态下符合所有的完整性约转载 2020-10-12 21:41:20 · 211 阅读 · 0 评论 -
Oracle约束详解
一 约束的定义约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作。约束可以是列一级别的 也可以是表级别的。定义约束时没有给出约束的名字,ORACE系统将为该约束自动生成一个名字,其格式为SYS_Cn,其中n为自然数(强烈建议各位在创建表或增加约束时,给约束定义名称。).在ORACLE中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约转载 2020-09-14 22:13:29 · 640 阅读 · 0 评论 -
一文带你了解 MySQL 中的各种锁机制!
前言MySQL中的锁机制,按粒度分为行级锁,页级锁,表级锁,其中按用法还分为共享锁和排他锁.行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁.特点开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。用法共享锁(s 锁 读锁)用法:SELECT ... LOCK IN SHARE MODE;排他锁(x 锁 写锁 )用法:SELEC转载 2020-08-20 20:54:06 · 178 阅读 · 1 评论 -
MySQL 日期时间类型怎么选?看这篇文章你就懂了
前言构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢?那我们就一步一步来分析他们的特点,这样我们根据自己的需求选择合适的字段类型来存储datetime 和 timestampdatetime 更像日历上面的时间和你手表的时间的结合,就是指具体某个时间。timestamp 更适合来转载 2020-08-18 20:45:24 · 672 阅读 · 1 评论 -
MySQL时间转换方法
目录MySQL日期和字符相互转换方法DATE_FORMAT()STR_TO_DATE()日期格式MySQL日期和字符相互转换方法MySQL获取当前时间的方法为:now()date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();DATE_FORMAT()DATE_FORMAT()原创 2020-08-13 21:10:13 · 1022 阅读 · 0 评论 -
这些必须会看的Mysql日志,你会了吗
慢查询日志慢查询日志用来记录响应时间超过阈值的SQL语句,所以我们可以设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中。该阈值可以通过参数 long_query_time 来设置,默认为10秒。我们可以通过show variables like ‘slow_query%’;来查询慢查询日志的开启状态和存放的位置说明:slow_query_log 慢查询日志的开启状态slow_query_log_file 慢查询日志存放的位置如果我们想知道当前慢查询日志的时间阈值,可以通原创 2020-06-21 19:45:43 · 171 阅读 · 0 评论 -
一文看懂聚集索引和非聚集索引
聚集索引聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相比,聚集索引有着更快的检索速度。注意:聚集索引也称为聚簇索引(Clustered Index)聚集索引确定表中数据的物理顺序。聚集索引类似于字典,按字母排序,每个字母下有多个字(相当于数据列)。所以对于聚集索引,叶子结点即存储了真实的数据行。所以通过聚集索引可以直原创 2020-06-07 14:15:03 · 2536 阅读 · 0 评论 -
覆盖索引是什么?一篇文章告诉你
覆盖索引覆盖索引是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。理解方式一:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)满足查询结果的数据就叫做覆盖索引。理解方式二:是非聚集复合索引的一种形式,它包括在查询里的Select、Join和Where子句用到的所有列(即建索引的字段正好是覆盖原创 2020-06-06 22:37:47 · 21963 阅读 · 4 评论 -
MySql必须要会的Explain指令,值得一看
前言Explain可以说是我们使用MySQL必须要知道的一个指令。EXPLAIN 命令用于查看SQL语句的查询执行计划。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的。对于我们分析sql有着重要的作用,通过SQL的执行计划,我们可以知道该SQL的连接类型,使用的索引等信息。解析:下图为explain的分析结果expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、E原创 2020-06-06 12:12:45 · 238 阅读 · 0 评论