mysql
文章平均质量分 66
MySQL
Chsavvy
每个人都能在自己的行业中越走越顺……
展开
-
mysql的double write和postgresql的full_page_writes
一、什么是double write(双写)double write它针对的对象是脏数据,在将脏数据刷盘过程中产生。即一份脏数据写到共享表空间,一份写到真正的数据文件永久保存,也就是说写了两次的脏数据。所以称为double write。二、什么是postgresql的full_page_writesfull_page_writes是控制是否开启全页写入,默认开启。作用就是为了防止块折断活动损坏的一种策略。postgres=# show full_page_writes; full_page_writ原创 2022-03-21 22:56:37 · 2116 阅读 · 0 评论 -
mysqlbinlog命令工具的使用
使用语法mysqlbinlog [options] log-files常用参数说明参数描述-?, --help帮助信息--base64-output=name输出格式,‘auto’:默认自动;‘never’:以binlog事件格式输出;‘decode-rows’:以注释方式输出pseudo-SQL-d, --database=name只列出该数据库的条目(只用本地日志)--bind-address绑定的IP地址-h, --host=name获取给定原创 2022-03-08 19:45:51 · 711 阅读 · 0 评论 -
mysql8.0+上被移除或替代的特性
1.mysql8.0被弃用的特性validate_password在未来新版本将被弃用alter tablespace和drop tablesapce engine被弃用pad_char_to_full_length的SQL模式被弃用在创建临时表中TABLESPACE = innodb_file_per_table and TABLESPACE = innodb_temporary被弃用2.mysql8.0中新参数/变量或表代替旧的参数/变量/表旧参数或表代替的参数或表u原创 2022-03-06 17:32:55 · 886 阅读 · 0 评论 -
mysqldumpslow慢查询分析工具使用
使用语法Usage: mysqldumpslow [ OPTS… ] [ LOGS… ]常用参数参数描述-s排序方式,后面跟排序列-r反向排序-t返回记录数-a不将所有的数字抽象为N,字符串抽象为S-n NUM在名称中至少有n个数字抽象为数字-g正则匹配模式,大小写不敏感-v,--verbose详细执行信息-d,--debug调试模式排序方式:al:平均锁定时间ar:平均返回记录时间at:平均查询时间,默认c原创 2022-03-03 22:09:09 · 170 阅读 · 0 评论 -
mysqldump的使用
mysqldump工具介绍mysqldump是mysql自带的逻辑备份工具。它通过协议连接到mysql数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert语句。使用语法:Usage: mysqldump [OPTIONS] database [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…]OR mysqldump [OPTIONS] --all-databases [OPTIO原创 2022-03-03 22:08:34 · 1985 阅读 · 0 评论 -
mysql的事务日志
一、事务日志innodb通过force log at commit机制实现事务的持久性,即在事务提交的时候,必须先将该事务的所有事务日志写入到磁盘上的redo log file和undo log file中进行持久化。事务日志是连续的磁盘空间,因此IO是顺序的,性能比较高,可以保证数据及时写入事务日志。innodb是使用日志来减少提交事务时的开销。二、事务日志类型redo log:重做日志,提供前滚操作。通常是物理日志,记录的是数据页的物理修改,用于恢复提交后的物理数据页undo l原创 2022-03-01 19:13:43 · 939 阅读 · 0 评论 -
mysql日志类型
一、mysql的日志类型普通日志慢查询日志错误日志binlog日志中继日志1)普通日志general_log开启后会记录所有执行的sql,所以开启后很容易导致磁盘爆满,一般只是用于临时使用的时候开启,使用完后关闭。日志保存在general_log_file的路径下。## 查看普通的日志是否开启,默认不开启,一般不开启mysql> show variables like 'general_log%';+------------------+------------------原创 2022-02-28 22:20:40 · 911 阅读 · 0 评论 -
mysql线程状态
mysql线程状态说明Sending data:线程正在读取和处理select语句的行,并将数据发送到客户端。在此状态期间发生的操作往往会执行大量磁盘访问,因此它通常是给定查询生命周期中运行时间最长的状态。Sending to client:服务器正在向客户端写入数据包。5.7.8之前是Writing to netsetup:线程正在开始一个alter table操作Sorting for order:线程正在进行排序以满足order bySorting for group:线程正在进行排序以满原创 2020-08-11 22:26:13 · 835 阅读 · 0 评论 -
Atlas代理安装以及使用
三、Atlas代理安装以及使用1.下载mysql-proxy的rpm安装包mysql-proxy(只适合在64位系统上运行)2.解压安装rpm -i Atlas-2.2.1.el6.x86_64.rpm3.默认路径/usr/local/mysql-proxy4.设置配置文件[mysql-proxy]#带#号的为非必需的配置项目#管理接口的用户名admin-username = user#管理接口的密码admin-password = 123456#Atlas后端连接的MySQL原创 2020-07-13 23:27:25 · 881 阅读 · 0 评论 -
mysql中间插件之proxysql的使用
五、proxysql的使用proxysql可作为mysql的中间代理层,用于实际的生产环境中,可以实现读写分离,支持query路由,动态指定某个sql进行cache,动态加载配置,故障切换和sql的过滤等功能。1)创建代理账号在MySQL上创建客户端的个人代理账号create user 'zhangsan'@'192.168.%' identified by '123456';grant select on test.* to 'zhangsan'@'192.168.%' ;2)配置代理账号原创 2020-07-26 22:53:21 · 964 阅读 · 0 评论 -
proxysql代理安装
四、proxysql代理的安装及使用1.下载原创 2020-07-15 00:14:03 · 599 阅读 · 0 评论 -
mysql的explain使用
explain:用于查看SQL的执行计划1)select_type:查询类型SIMPLE:简单selectPRIMARY:最外面的selectUNION:union中的第二个或者后面的select语句DEPENDENT UNION:union中的第二个或者后面的select语句,取决于外面的查询UNION RESULT:union的结果SUBQUERY:子查询中的第一个selectDEPENDENT SUBQUERY:子查询的第一个select,取决于外面的查询DERIVED:导出表的s原创 2020-07-27 23:36:49 · 173 阅读 · 0 评论 -
Linux环境下二进制包的MySQL安装
一、mysql搭建(Linux环境,tar.gz)1.官网下载安装安装包percona官网wget https://www.percona.com/downloads/Percona-Server-5.7/Percona-Server-5.7.21-21/binary/tarball/Percona-Server-5.7.21-21-Linux.x86_64.ssl101.tar.gz2.解压tar -zxvf Percona-Server-5.7.21-21-Linux.x86_64.ssl10原创 2020-07-12 16:25:31 · 168 阅读 · 0 评论 -
mysql常用配置参数说明
mysq常用配置参数port:端口server-id:数据库唯一标识码datadir:数据目录路径basedir:基本路径socket:指定socket文件路径skip-name-resolve:禁止mysql对外部连接进行DNS解析,启用时所有远程连接都要使用ip地址方式skip-external-locking:避免外部锁,默认开启skip-grant-tables:mysql启动时不使用grant-tables授权表,常用于忘记密码情况下user:使用的用户sql_mode:约束原创 2020-08-12 00:01:33 · 592 阅读 · 0 评论 -
sqlyog远程连接mysql
二、SQLyog客户端工具远程连接mysql1.检查端口是否开放iptables -nL |grep 3306##未开放添加##centos7firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload##centos6iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -jiptables save(ipta原创 2020-07-12 17:09:00 · 418 阅读 · 0 评论 -
proxysql的核心表介绍
五、proxysql的核心表信息介绍(一)核心表功能说明stat_mysql_processlist:MySQL的show processlist的命令,查看各线程的状态stats_mysql_commands_counters:统计各种SQL类型的执行次数和时间stats_mysql_connection_pool:连接后端MySQL的连接信息mysql_servers:包含要连接proxysql的后端服务器列表mysql_users:包含proxysql将用于向后端服务器进行身份验证的用户原创 2020-07-24 23:52:41 · 806 阅读 · 0 评论 -
mysql索引种类
mysql的索引使用mysql索引分为聚集索引(聚簇索引)和非聚集索引。聚集索引:物理存储顺序与逻辑顺序相同,并且物理存储上连续存在,每张表只能只有一个。聚集索引的数据存放在叶子节点上。非聚集索引:物理存储顺序与逻辑顺序不一致,物理存储上是不连续的,逻辑上是连续的。一张表中可以有多个非聚集索引。非聚集索引的叶子节点存的是数据的指针主键索引唯一索引普通索引组合索引覆盖索引全文索引...原创 2020-08-26 21:41:07 · 392 阅读 · 0 评论 -
mysql8.0的窗口函数
mysql8.0的窗口函数1.窗口:记录集合2.静态窗口:窗口大小都是固定的3.滑动窗口:不同的记录对应着不同的窗口MySQL支持的窗口函数类型:序号函数:row_number()/rank()/dense_rank()分布函数:percent_rank()/cume_dist()前后函数:lag()/lead()头尾函数:first_val()/last_val()其他函数:nth_value()/nfile()基本语法:函数名([expr]) over子句子句类型:par原创 2021-11-10 20:32:00 · 359 阅读 · 0 评论 -
mysql存储引擎
1.myisam1)特点支持全文索引拥有较高的插入,查询速度mysql版本5.5.5的默认存储引擎允许没有任何索引和主键的表存在使用的B-tree作为索引结构,叶节点的data域存放的是数据记录的地址基于isam(index sequential access method 有索引的顺序访问方法)存储引擎不支持事务不支持外键约束表锁,不支持行锁只缓存索引,不会数据读写相互阻塞,不仅会在写入的时候阻塞读取,myisam慧慧在读取的时候阻塞写入,但读本身并不会阻塞另外的读2)存储结原创 2021-12-25 00:27:12 · 146 阅读 · 0 评论 -
mysql的QPS和TPS
mysql的QPS和TPSQPS:每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量衡量标准。TPS:每秒事务数,是一台数据库服务器在单位时间内处理的事务的个数。QPS=com_select/s+com_insert/s+com_update/s+com_delete/s##通过统计插入,更新,删除每秒执行的次数计算TPS=com_insert/s+com_update/s+com_delete/s##通过事务提交数和事务回滚数计算TPS=(co原创 2021-12-25 00:30:40 · 4000 阅读 · 0 评论 -
mysql5.7与8.0密码加密方式
mysql5.7与8.0密码加密方式1.mysql5.7默认是方式是mysql_native_password;2.mysql8.0默认是caching_sha2_password注意:在8.0+中使用指定使用caching_sha2_password创建用户账号密码时,有些客户端暂时不支持,从而导致连接认证失败。所以,有时需要指定mysql_native_password创建。## 查看密码加密方式show variables like '%password%';+--------------原创 2021-12-25 00:27:38 · 12912 阅读 · 0 评论 -
mysql的系统库(information_schema,mysql)
information_schemainformation_schema数据库是mysql自带的,它提供了访问数据元数据的方式。表名注释CHARACTER_SETS字符集表,提供了mysql实例可用字符集的信息,show character setCHECK_CONSTRAINTS提供有关check在表上定义的约束的信息COLLATIONS提供了关于各字符集的对照的信息COLLATION_CHARACTER_SET_APPLICABILITY指明了可用校原创 2022-01-14 22:30:05 · 298 阅读 · 0 评论 -
mysql基本架构
mysql基本架构组成:客户端,Server层和存储引擎层。其中,只有Server层和存储引擎层是属于Mysql。客户端:发送请求Server层:连接器,查询缓存,分析器,优化器,执行器等,也包括mysql的大多数核心功能区以及所有内置函数。1)内置函数:日期,时间,数学函数,加密函数等2)所有跨存储引擎的功能都在这一层实现,如存储过程,触发器,视图等3)通用的日志模块binglog日志模块存储引擎:负责数据的存储和提取一.Server层基本组件1.连接器:管理连接,权限验证长连接:原创 2022-01-10 23:34:08 · 1403 阅读 · 0 评论 -
mysql的数据类型
类型说明整数类型1.tinyni,smallint,mediumint,int,bigint分别是8,16,24,32,64为存储空间。它们可以存储的范围从-2^(N-1) ~2^(N-1)-1,N为存储空间的位数 2.unsigned:非负数,可以使正数的上限提高一倍。 3.有符号和无符号类型使用相同的存储空间,并具有相同的性能,因此可以根据实际情况选择合适的类型 4.mysql可以为整数 类型指定宽度,如int(11),对大多数应用这是没有意义的,对于存储和计算来说,int(...原创 2022-01-14 22:27:50 · 178 阅读 · 0 评论 -
mysql分区表
1.使用场景表非常大以至于无法全部都放在内存中,或者只在表的最后部分有任店数据,其他均是历史数据分区表的数据更容易维护分区表的数据可以分布在不同的物理设备上,从而高效地利用多个硬件设备可以使用分区表来避免某些特殊瓶颈如果需要还可以备份和恢复独立的分区,这在的非常大的数据集的场景下效果非常好2.分区限制:一个表最多只能有1024个分区range和list分区类型,如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来分区表中无法使用原创 2022-01-14 22:28:53 · 537 阅读 · 0 评论 -
mysql的复制方式
1.异步复制 asynchronous replicationmysql默认复制方式是异步复制,主库执行完客户端提交的事务后会立即将结果返回给客户端,并不关心从库是否已经接收并处理。党主机宕机后,故障转移后可能导致数据不完整问题。2.全同步复制只当主库执行完一个事务后,所有的从库都执行完改事务才返回给客户端。这样会严重影响性能。3.半同步复制介于异步复制和全同步复制之间,主库执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步原创 2022-01-14 22:33:06 · 1917 阅读 · 0 评论 -
mysql事务和锁
1.mysql四事务隔离级别read uncommitted(未提交读):在read uncommitted级别,事务中的修改,即使没有提交,对其他事务也都是可见的。性能上不比其他的级别好很多,并且会导致很多问题的产生,实际中很少使用。read committed(提交读/不可重复读):一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。repeatbale read(可重复读):mysql默认隔离级别,在同一个事务中多次读取同样记录的结果是一致的。可能会造成幻读,但结合MV原创 2022-01-14 22:34:17 · 365 阅读 · 0 评论 -
mysql死锁和等待锁
一.msyql死锁死锁是相互争用资源过程中,都等待彼此释放资源,产生的现象。死锁场景模拟当session1持有共享锁S,并请求排他锁X,同时session2持有排他锁,并请求共享锁S的时候会产生死锁。1)模拟session1持有共享锁,session2持有排他锁## 在session1中执行start transaction;Query OK, 0 rows affected (0.00 sec)select * from aa where userid = 18 lock in原创 2022-01-19 23:30:58 · 2190 阅读 · 0 评论 -
mysql8.0的新特性
一.账户与安全1)用户创建## 查看版本信息mysql> select @@version;+-----------+| @@version |+-----------+| 8.0.18 |+-----------+1 row in set (0.00 sec)## 不可以直接使用授权方式进行创建用户mysql> grant all privileges on *.* to 'wangwu'@'172.16.0.%' identified by '123456';原创 2022-01-17 19:48:53 · 322 阅读 · 0 评论 -
mysql游标的使用
1.mysql游标特性及性能游标只能向一方向前进,并且不可以跳过任何一行数据MySQL在服务器提供的只读的,单向的游标,而且只能存储过程或者更底层的客户端API中使用。因为MySQL游标中指向的对象都是存储在临时表中而不是实际查询到的数据,所以游标总是只读的。游标会让mysql执行一些额外的I/O操作,而这些操作的效率可能非常低。因为临时内存表不支持blob和text类型,如果游标返回的结果包含这样的列,mysql就的必须创建临时磁盘表来存放,会导致性能可能很糟糕。2.游标使用原创 2022-01-19 23:28:31 · 1764 阅读 · 0 评论 -
mysql的几种连接方式
测试数据## 连接表测试数据select * from aa;+----+--------+| id | userid |+----+--------+| 1 | 10 || 2 | 11 || 3 | 12 || 4 | 13 || 7 | 16 || 8 | 17 || 9 | 18 |+----+--------+7 rows in set (0.00 sec)select * from bb;+原创 2022-01-19 23:27:17 · 1895 阅读 · 0 评论