03 2019 档案

摘要:SHOW PROCESSLIST方式 为保证二进制日志在从库的执行时间和顺序的正确性,二进制日志中的每个语句都设置了时间戳,因此如果主库上的语句正不断执行,那么可以根据最后一条执行语句时间戳和当前备库时间进行对比,可以估算出出复制延迟的时间。 使用SHOW PROCESSLIST可以看出从库上最后一 阅读全文
posted @ 2019-03-31 22:46 TeyGao 阅读(431) 评论(0) 推荐(0) 编辑
摘要:TID(Trasaction ID)TID代表实例上已经提交的事务数量,并随着事务提交递增 UUID代表MYSQL实例的唯一表示 GTID(Global Trasaction ID)GTID由MYSQL实例的UUID+已提交事务的TID组成,代表一个全局唯一的编号。 GTID的出现用来解决复制中一个 阅读全文
posted @ 2019-03-31 21:48 TeyGao 阅读(222) 评论(0) 推荐(0) 编辑
摘要:在MySQL 5.5/5.6/5.7版本中,DDL操作是非原子型操作,在执行过程中遇到实例故障重启,可能导致DDL没有完成也没有回滚。如 1、执行DROP TABLE T1,T2操作,实例重启恢复后,表T1被删除,表T2仍存在。 2、执行CREATE TABLE操作,创建过程中实例重启,表创建失败但 阅读全文
posted @ 2019-03-27 21:12 TeyGao 阅读(481) 评论(0) 推荐(0) 编辑
摘要:MySQL常见的整数类型有:TINYINT: 占用8位空间SMALLINT: 占用16位空间MEDIUMINT: 占用24位空间INT: 占用32位空间BIGINT:只用64位空间MySQL常见的实数类型有:DECIAML: 用于存储精确的数据FLOAT和DOUBLE:用于存储浮点类型的数据可以设置 阅读全文
posted @ 2019-03-27 18:01 TeyGao 阅读(1267) 评论(0) 推荐(0) 编辑
摘要:在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种。如果SQL语句为UPDATE/DELETE等修改语句时,并不是所有操作都以ROW模式记录变更操作。 测试Demo: 查看生成的BINLOG事件: 阅读全文
posted @ 2019-03-26 11:30 TeyGao 阅读(329) 评论(0) 推荐(0) 编辑
摘要:测试环境:MySQL 5.5.14/MySQL 5.6.36 测试脚本: 建表语句为: 上面ALTER命令想要将表主键ID列修改为null,执行完成未报错,但未修改成功。 查看BINLOG日志发现: 发现该命令被记录到BINLOG日志中。 上面代码在MySQL 5.7版本中执行,会报错: 如果主库为 阅读全文
posted @ 2019-03-26 11:04 TeyGao 阅读(1078) 评论(0) 推荐(0) 编辑
摘要:问题描述: 1、从库环境:MySQL 5.7.19,主从都开启GTID模式 2、MySQL数据目录所有者被修改,导致数据库服务异常关闭 2、修改数据目录所有者,重启数据库服务,开启复制,报错信息为: 错误解决: 1、检查主从GTID设置,正常 2、解析binlog日志检查,发现事务包含GTID信息 阅读全文
posted @ 2019-03-26 10:17 TeyGao 阅读(307) 评论(0) 推荐(0) 编辑
摘要:1.UPPER和UCASE返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。 2.LOWER和LCASE返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节 阅读全文
posted @ 2019-03-25 22:29 TeyGao 阅读(452) 评论(0) 推荐(0) 编辑
摘要:VARCHAR类型存储空间问题 当MySQL表使用ROW_FORMAT=FIXED时,对于定义VARCHAR类型的列会使用定长存储。 对于VARCHAR类型,除包括字符数据需要的空间外,还额外需要1或2个字节来记录字符串的长度,对于字符串长度小于或等于255字节时使用1个字节表示,大于255字节的字 阅读全文
posted @ 2019-03-25 22:16 TeyGao 阅读(914) 评论(0) 推荐(0) 编辑
摘要:在Cassandra中,可以设置列的保留时间(Time To Live),当该列超过保留时间后,会下一次读取中被墓碑(Tombstone)标记,然后保留一个垃圾回收周期(表属性gc_grace_seconds设置),最后被压缩进程或修复进程自动移除。1、如果创建表时指定default_time_to 阅读全文
posted @ 2019-03-20 15:13 TeyGao 阅读(1797) 评论(0) 推荐(0) 编辑
摘要:当MySQL服务异常重启失败后,可以通过配置参数innodb_force_recovery来对MySQL服务进行修复启动。 参数innodb_force_recovery选项: 参数innodb_force_recovery设置: 在配置文件中的mysqld模块添加参数innodb_force_re 阅读全文
posted @ 2019-03-19 14:37 TeyGao 阅读(6488) 评论(0) 推荐(0) 编辑
摘要:pt-table-checksum用来检测主从数据库上的数据一致性,其原理是通过在主库上运行一系列的MySQL函数计算每个表的散列值,并利用主从关系将相同的操作在从服务器上重放(基于statement格式的binlog),从而获取到主从服务器上的散列值然后比较散列值判定主从数据是否一致。 对于表中的 阅读全文
posted @ 2019-03-19 11:02 TeyGao 阅读(562) 评论(0) 推荐(0) 编辑
摘要:Semi-join(半连接)半连接主要场景:检查一个结果集(外表)的记录是否在另外一个结果集(字表)中存在匹配记录,半连接仅关注”子表是否存在匹配记录”,而并不考虑”子表存在多少条匹配记录”,半连接的返回结果集仅使用外表的数据集,查询语句中IN或EXISTS语句常使用半连接来处理。 MySQL支持5 阅读全文
posted @ 2019-03-18 21:45 TeyGao 阅读(1844) 评论(0) 推荐(1) 编辑
摘要:如果派生表外部过滤条件可以下推到派生表内部,可以有效减少派生表内部扫描数据量和派生表使用内存甚至避免使用派生表。 如对于下面查询: 对应查询在执行计划为: 而将派生表外部的查询条件下pushdown到派生表内部,将SQL改写为: 执行计划为: 优化前需要扫描instance_count表上Forei 阅读全文
posted @ 2019-03-18 21:36 TeyGao 阅读(410) 评论(0) 推荐(0) 编辑
摘要:在某些场景中,需要对派生表生成临时结果集进行materialized,如果该临时结果集中包含索引键,那么查询有可能通过该索引键来进行优化。 如对下面查询: 对应查询在执行计划为: 对应的执行计划JOSN为: 由于查询中使用STRAIGHT_JOIN关键词,将assets_cluster作为外表,派生 阅读全文
posted @ 2019-03-18 21:20 TeyGao 阅读(2696) 评论(2) 推荐(0) 编辑
摘要:常见SHOW PROCESSLIST返回结果中各种线程状态 After createThis occurs when the thread creates a table (including internal temporary tables), at the end of the functio 阅读全文
posted @ 2019-03-18 14:44 TeyGao 阅读(428) 评论(0) 推荐(0) 编辑
摘要:JAVA创建Cluster对象 相关知识点: 阅读全文
posted @ 2019-03-18 13:58 TeyGao 阅读(350) 评论(0) 推荐(0) 编辑
摘要:Cassandra如何保证数据最终一致性:1、逆熵机制(Anti-Entropy)使用默克尔树(Merkle Tree)来确认多个副本数据一致,对于不一致数据,根据时间戳来获取最新数据。 2、读修复机制(Read Repair)当Cassandra读数据时,需要根据读一致级别设定读取N个节点的副本数 阅读全文
posted @ 2019-03-15 00:02 TeyGao 阅读(1015) 评论(0) 推荐(0) 编辑
摘要:Mysql在5.1版本时增加对分区表的支持,但并不是所有存储引擎都支持分区表,常见的Innodb/MyISAM/NDB等引擎都支持分区表。使用SHOW PLUGINS来查看数据库是否启用分区功能。 当前Mysql支持一下分区方式: 查看分区 分区与唯一索引 无论使用何种类型的分区,如果表中存在主键或 阅读全文
posted @ 2019-03-13 11:02 TeyGao 阅读(372) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,有两种跳过复制错误的方法:1、对于未使用GTID的复制,可以使用sql_slave_skip_counter来跳过错误2、对于使用GTID的复制,可以使用GTID_NEXT模拟空事务来跳过错误 使用sql_slave_skip_counter跳过错误 对于set global sql 阅读全文
posted @ 2019-03-08 10:57 TeyGao 阅读(730) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,可以通过SHOW PROCESSLIST命令来查看当前线程: SHOW PROCESSLIST命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态。 输出结果列信息为: SHOW FULL PROCESSLIST用来显示完整的Info列信息,等 阅读全文
posted @ 2019-03-07 22:47 TeyGao 阅读(280) 评论(0) 推荐(0) 编辑
摘要:通常情况下,缓冲池无法将整个数据库所有数据都进行缓冲,而且不同数据的访问频率不一样,有些数据会被频繁访问,而有些数据可能数月不会被访问一次,因此数据库使用最近最少使用LRU latest Recent Used算法来管理缓冲池,其算法思想为:最近访问的数据被再次访问的概率要高于之前被访问的数据,被多 阅读全文
posted @ 2019-03-07 21:51 TeyGao 阅读(115) 评论(0) 推荐(0) 编辑
摘要:## ##在MySQL 5.7版本中引入将Innodb Buffer中数据备份和回复的新特性,具体原理时将Buffer pool中LRU链表上的存放的spaceid和page id存储到文件中,在数据库恢复时,按照该文件中存放的spaceid和page id数据对应的页面加载到buffer pool 阅读全文
posted @ 2019-03-07 21:47 TeyGao 阅读(706) 评论(0) 推荐(0) 编辑
摘要:## 查看PROFILING是否开启 SELECT @@profiling; ## 开始会话级别PROFILING SET profiling=1; ## 执行要检查的SQL ## 查看捕获的所有SQL SHOW PROFILES; ## 看看特定SQL的执行信息 SHOW PROFILE CPU,BLOCK IO,SWAPS FOR QUERY 1; ##SHOW PROFILE... 阅读全文
posted @ 2019-03-07 21:40 TeyGao 阅读(157) 评论(0) 推荐(0) 编辑
摘要:localhost为本地服务器,而127.0.01为本机地址。在使用localhost时不经过网卡传输,不受网络防火墙和网卡相关的限制,访问localhost不会被解析成ip地址,不会占用网卡和网络资源。在使用127.0.0.1时需要通过网卡传输,依赖于网卡,受到网络防火墙和网卡相关的限制。在MyS 阅读全文
posted @ 2019-03-07 21:37 TeyGao 阅读(431) 评论(0) 推荐(0) 编辑
摘要:Seesion级的内存分配: global级的内存分配: 阅读全文
posted @ 2019-03-06 15:34 TeyGao 阅读(445) 评论(0) 推荐(0) 编辑
摘要:在mysqldump中指定single-transaction时,会使用可重复读(REPEATABLE READ)事务隔离级别来保证整个dump过程中数据一致性,该选项仅对InnoDB表有用,且不能与ALTER TABLE/CREATE TABLE/DROP TABLE/RENAME TABLE/T 阅读全文
posted @ 2019-03-06 15:24 TeyGao 阅读(7771) 评论(0) 推荐(1) 编辑
摘要:##=====================================================## ## 在Master上导出所有数据库 /export/servers/mysql/bin/mysqldump \ --host="127.0.0.1" \ --port=3358 \ --user="root" \ --password="root123.com" \ --defa... 阅读全文
posted @ 2019-03-06 14:34 TeyGao 阅读(273) 评论(0) 推荐(0) 编辑
摘要:mysqldump常用选项-h, --host=name:服务器IP-u, --user=name:登录名-p, --password[=name]:登录密码-A, --all-databases:导出所有数据库-B, --databases:导出指定的数据库,多个数据库名使用空格分割--table 阅读全文
posted @ 2019-03-06 14:21 TeyGao 阅读(1580) 评论(0) 推荐(0) 编辑
摘要:MySQL中参数innodb_file_per_table决定将表存放于ibdata*的共享表空间还是独立的.ibd文件的独立表空间。 共享表空间方式:所有数据和索引都存放在共享表空间中,默认存放在MySQL的data目录下。 优点:可以为共享表空间配置多个数据文件,多个数据文件可以存放到不同磁盘上 阅读全文
posted @ 2019-03-05 22:49 TeyGao 阅读(419) 评论(0) 推荐(0) 编辑
摘要:在InnoDB 1.0.x版本之前,InnoDB 存储引擎提供了 Compact 和 Redundant 两种格式来存放行记录数据,Redundant格式是为兼容之前版本而保留的,而Compact行格式在MySQL 5.0中引入,在 MySQL 5.6 版本中,默认设置为 Compact 行格式。 阅读全文
posted @ 2019-03-05 22:02 TeyGao 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:-- 使用cursor的demo -- ==============================## -- 删除存储过程 DROP PROCEDURE USP_TestCursor; DELIMITER $$ -- 创建存储过程 CREATE PROCEDURE USP_TestCursor () BEGIN -- 需要定义接收游标数据的变量 DECLARE CurI... 阅读全文
posted @ 2019-03-05 21:58 TeyGao 阅读(94) 评论(0) 推荐(0) 编辑
摘要:cassandra读性能优化:1、禁用read repair每次读操作,无论读请求设置读一个节点还是多个节点,cassandra返回给客户端最新的数据后,都会后台对比所有副本的数据并对差异数据进行修复。read repair操作会占用服务器CPU和IO资源,影响读性能。禁用read repair后, 阅读全文
posted @ 2019-03-05 11:11 TeyGao 阅读(265) 评论(0) 推荐(0) 编辑
摘要:启用用户认证和创建超级用户 需要针对每个节点进行配置修改和重启,但授权操作仅需要在任一节点进行即可。 设置超级用户 用户创建和授权 demo: 授权数据存储 用户账号和用户权限存放在数据库system_auth中。 抄自:https://blog.csdn.net/a476585070/articl 阅读全文
posted @ 2019-03-04 15:15 TeyGao 阅读(969) 评论(0) 推荐(0) 编辑
摘要:对于使用 timestamp 的场景,MySQL 在访问 timestamp 字段时会做时区转换,当 time_zone 设置为 system 时,MySQL 访问每一行的 timestamp 字段时,都会通过 libc 的时区函数,获取 Linux 设置的时区,在这个函数中会持有mutex,当大量 阅读全文
posted @ 2019-03-04 00:42 TeyGao 阅读(3123) 评论(0) 推荐(0) 编辑
摘要:在MySQL 5.6版本中引入参数explicit_defaults_for_timestamp设置,该参数会影响Timestamp的默认属性。 同时在MySQL 5.6版本中中,去除一张表只能有一个TIMESTAMP列的限制,允许单表中使用多个时间戳列。 在MySQL 5.6中,当参数explic 阅读全文
posted @ 2019-03-03 23:22 TeyGao 阅读(364) 评论(0) 推荐(0) 编辑
摘要:DATETIME类型和TIMESTAMP类型的差别 DATETIME类型 TIMESTAMP类型 时间戳列属性 Timestarmp列可以设置两个属性:1、DEFAULT CURRENT_TIMESTAMP 表示插入记录行时,如果未对该列指定值,则使用当前时间来为该字段赋值2、ON UPDATE C 阅读全文
posted @ 2019-03-03 22:21 TeyGao 阅读(921) 评论(0) 推荐(0) 编辑
摘要:方式一:使用SELECT INTO+SOURCE方式 使用SELECT INTO OUTFILE方式获取到要删除的连接ID并保存为文件,在通过SOURCE执行 ## 查看kill_id文件是否存在 system cat /tmp/kill_id.sql ## 如果文件存在,则先删除 system s 阅读全文
posted @ 2019-03-03 14:26 TeyGao 阅读(2369) 评论(0) 推荐(0) 编辑
摘要:在MYSQL5.7版本中引入多源复制,一个从库允许复制多个主库的数据,每个主库被配置为一个单独的channel。对于每个channel:1>拥有独立的chanel名2>拥有独立的receiver线程以及独立的中继日志。3>可以被单独启动和关闭以及进行配置4>可以拥有独立的一组applier线程来并发 阅读全文
posted @ 2019-03-03 14:13 TeyGao 阅读(326) 评论(0) 推荐(0) 编辑
摘要:常见查看内存信息命令 ## 使用free -m命令查看 free -m ## 使用cat /proc/meminfo 查看 cat /proc/meminfo ## 使用dmidecode命令查看 dmidecode -t memory ## 使用vmstat命令查看 vmstat 查看物理内存大小 阅读全文
posted @ 2019-03-03 11:51 TeyGao 阅读(3504) 评论(0) 推荐(0) 编辑
摘要:NUMA(Non-Uniform Memory Access),非一致性内存访问NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块(如称为Crossbar Switch)进行连接和信息交互,因此 阅读全文
posted @ 2019-03-03 10:40 TeyGao 阅读(2518) 评论(0) 推荐(0) 编辑
摘要:Checkpint 分两种:Sharp Checkpoint : 在服务器正常关闭时,将所有脏页都写入到磁盘中,默认配置参数 innodb_fast_shutdown=1Fuzzy Checkpoint: 在服务正常运行过程中,由各种条件触发进行Fuzzy Checkpoint, 只将部分脏页刷新写 阅读全文
posted @ 2019-03-02 22:14 TeyGao 阅读(257) 评论(0) 推荐(0) 编辑
摘要:Name or service not known 错误消息: [Warning] IP address 'xxx.xxx.xx.xxx' could not be resolved: Name or service not known 错误原因: MySQL数据库服务器上没有配置/ect/host 阅读全文
posted @ 2019-03-02 22:09 TeyGao 阅读(2479) 评论(0) 推荐(0) 编辑
摘要:connect_timeout connect_timeout用在client和server之间建立连接时等待的握手超时时间,仅在登录时有效。在网络不好或网络丢包导致重试的情况下可适当增加该值,否则保留默认值即可。 The number of seconds that the mysqld serv 阅读全文
posted @ 2019-03-02 22:01 TeyGao 阅读(564) 评论(0) 推荐(0) 编辑
摘要:查看当前连接到数据库的用户和Host ## 查看当前连接到数据库的用户和Host ## SELECT DISTINCT USER,HOST FROM `information_schema`.`PROCESSLIST` P WHERE P.USER NOT IN('root','repl','sys 阅读全文
posted @ 2019-03-02 21:52 TeyGao 阅读(12496) 评论(0) 推荐(0) 编辑
摘要:MySQL字符集相关参数 MySQL字符集参数使用 影响到字符编码的设置 数据库级别的字符集信息使用db.opt来存放字符集和校验字符集的信息,当该数据库下定义表时未定义字符集,将使用数据库的字符集。 SET NAMES命令 阅读全文
posted @ 2019-03-02 21:48 TeyGao 阅读(409) 评论(0) 推荐(0) 编辑
摘要:字符集和编码规则 Unicode字符集与UTF-8编码 MySQL的UTF8和UTF8MB4 MySQL字符集查看和修改 阅读全文
posted @ 2019-03-02 21:44 TeyGao 阅读(141) 评论(0) 推荐(0) 编辑
摘要:gossip协议1、点对点(peer to perr)的网络通信协议,节点间地位相同。2、两个节点间断性地交换自身信息及其知道的信息,每秒最多和群集中三个节点交换信息。3、每条交换信息中包含版本信息,新版本的信息会覆盖掉就版本的信息。4、通过多次交换各节点能获取到整个群集其他节点的信息。 seed 阅读全文
posted @ 2019-03-01 18:25 TeyGao 阅读(262) 评论(0) 推荐(0) 编辑