
mysql
文章平均质量分 86
xinyuan_java
这个作者很懒,什么都没留下…
展开
-
mysql事务隔离级别
mysql事务隔离级别转载 2022-12-30 11:26:33 · 16826 阅读 · 2 评论 -
SQL 审核查询平台
SQL 审核查询平台转载 2022-12-30 09:32:40 · 734 阅读 · 0 评论 -
MYSQL 最朴素的监控方式
MYSQL 最朴素的监控方式转载 2022-12-29 16:58:56 · 157 阅读 · 0 评论 -
MySQL必须知道的点
MySQL已经成为世界上最受欢迎的数据库管理系统之一,无论是用在小型开发项目上,还是用在构建那较大型的网站,MySQL都用实力证明了自己是一个稳定、可靠、快速、可信的系统,足以胜任任何数据存储业务的需要。使用过程中,这些点你都知道吗?1.必须使用InnoDB存储引擎有更好的CPU和IO性能,更好的备份和锁表机制,提高统计和调试效率。另外,作为一 个系统,InnoDB支持多种关键功能,其中最重要的是事务日志和行级锁。事务日志记录真正的数据库事务,但更重要的是数据崩溃恢复和回滚。...转载 2021-01-17 11:46:20 · 237 阅读 · 0 评论 -
mysql系列-数据库事务
一.什么是数据库事务?事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了:假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是,将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个..转载 2021-01-17 11:44:14 · 171 阅读 · 0 评论 -
mysql系列-MySQL引擎和视图
- MySQL引擎 -一.MySQL存储MyISAM与InnoDB区别存储引擎Storage Engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。二.常用的存储引擎有以下 InnoDB引擎:InnoDB引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。 MyIASM引擎(原本MySQL的默认引擎):不提供事务的支持,也不支持行级锁和外键。 ME...转载 2021-01-17 11:44:47 · 292 阅读 · 0 评论 -
mysql系列-MySQL锁
一、对MySQL的锁的了解当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制。就像酒店的房间,如果大家随意进出,就会出现多人抢夺同一个房间的情况,而在房间上装上锁,申请到钥匙的人才可以入住并且将房间锁起来,其他人只有等他使用完毕才可以再次使用。二、隔离级别与锁的关系在Read Uncommitted级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突在Read Committed级...转载 2021-01-16 16:35:10 · 123 阅读 · 0 评论 -
mysql系列-MySQL索引
一、什么是索引?索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据;索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。二、索引有哪些优缺点?索引的优点1.可以大大加快数据的检索速度,...转载 2021-01-16 16:03:02 · 196 阅读 · 0 评论 -
使用SQLServer的CDC功能实现数据变更捕获
CDC:Change Data Capture开启CDC--步骤:本文中以GPOSDB为例--第一步、对目标库显式启用CDC:--在当前库使用sys.sp_cdc_enable_db。返回0(成功)或1(失败)。--注意,无法对系统数据库和分发数据库启用该功能。且执行者需要用sysadmin角色权限。--该存储过程的作用域是整个目标库。包含元数据、DDL触发器、cdc架构和cdc用户。--使用以下代码启用:USE GPOSDB --要启用CDC的数据库GOEXECUTE sys转载 2020-12-07 16:10:22 · 3651 阅读 · 1 评论 -
MySQL数据库的高可用方案总结
这篇文章主要针对MySQL数据库的高可用方案进行详细总结,高可用架构对于互联网服务基本是标,本文是对各种方案的总结,感兴趣的小伙伴们可以参考一下可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法发微博,发微信等。一般而言,衡量高可用做到什么程度可以通过一年内服务不可用时间作为参考,要做到3个9的可用性,一年内只能累计有8个小时不可服务,而如果要做到5个.转载 2020-11-27 17:58:52 · 856 阅读 · 0 评论 -
MySQL 在线更改gtid_mode
在MySQL 5.7.6以前,gtid_mode是只读参数,修改值只能通过重启实例生效。在MySQL 5.7.6开始,gtid_mode支持在线动态修改。在MySQL里事务分为两种,一种是匿名事务(anonymous),一种是GTID事务。GTID事务即该事务带有GTID信息,而匿名事务即使没有GTID信息的事务,在主从复制中只能指定binlog文件和位点的方式来搭建。从MySQL 5.7.6开始,gtid_mode有以下四个值:OFF,主库所有新启的事务以及从库的事务都要求是匿名事务;例如主库发起转载 2020-11-24 17:34:33 · 1582 阅读 · 0 评论 -
58到家MySQL军规升级版
一、基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event 解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要...转载 2019-10-25 13:50:20 · 227 阅读 · 0 评论 -
master_pos_wait函数与MySQL主从切换
背景主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患)。一般设置为双M(M1、M2),假设当前状态为写M1,而M2只读,切换的大致流程如下:1、 停止应用写M1,将M1设置为只读2、 检查M2的slave status直到赶上M13、 将M1设置为可写 其中在第2步细化为a) 在M1上show master status;得到b...转载 2019-07-01 15:10:38 · 867 阅读 · 0 评论 -
MySQL filesort的理解
MySQL filesort的理解在对sql进行调优时候,经常碰到explain输出using filesort,那么这是什么意思的如果mysql在排序的时候没有使用到索引那么就会输出using filesort。mysql对排序有两种实现两边扫描第一遍扫描出需要排序的字段,然后进行排序后,根据排序结果,第二遍再扫描一下需要select的列数据。这回引起大量的随即IO,效率不高,但是节...转载 2019-06-11 14:43:54 · 949 阅读 · 0 评论 -
MySQL Innodb 并发涉及参数
1 参数作用 MySQL的各个插件式引擎中,都会对事务及线程做一定的处理和优化。在Innodb引擎中,总是尝试保持 innodb内 操作系统的线程数(暂命名为innodb_thread) 应该小于或等于 系统可提供给innodb处理事务的线程数(暂命名为system_innodb_thread)。在大多数情况下,innodb_thread都不会指定一个限制值,而是让它想要多少直接申请多少...转载 2019-06-11 13:35:15 · 554 阅读 · 0 评论 -
mysql全文索引 02 中文问题
MyISAM 和 InnoDB(>5.6) 都支持全文索引。全文索引就是建index,全文搜寻就是去查index。LIKE是用Regular Expression去做查询。MySQL全文索引是一种index type:FULLTEXT。全文索引的index只能用在MyISAM表格的char、varchar和text的字段上。全文索引的index可以在create tab...转载 2019-06-03 16:51:38 · 498 阅读 · 0 评论 -
MySQL 常用命令
常用功能命令1.导出整个数据库 1mysqldump-u用户名-p–default-character-set=latin1数据库名>导出的文件名(数据库默认编码是latin1)23mysqldump-uwcnc-psmgp_apps_wcnc>wcnc.sql2.导出一个表 1mysqldump...转载 2019-06-06 13:49:48 · 159 阅读 · 0 评论 -
mysql 全文检索 01
mysql>mysql> CREATE TABLE BOOKS( -> BOOKNO INTEGER NOT NULL PRIMARY KEY, -> AUTHORS TEXT NOT NULL, -> TITLE TEXT NOT NULL, -> YEAR_PUBLICATION YEAR ...转载 2019-05-31 17:12:42 · 188 阅读 · 0 评论 -
MySQL的BlackHole引擎
MySQL在5.x系列提供了Blackhole引擎–“黑洞”. 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储;Select语句的内容永远是空。 和Linux中的 /dev/null 文件完成的作用完全一致。那么, 一个不能存储数据的引擎有什么用呢?在大规模的Mysql服务器集群中,如果是存在一台主服务,多台从服务器,在繁忙的业务中,意味着主服务器每操作一个事件,...转载 2019-06-24 13:46:05 · 349 阅读 · 0 评论 -
MySQL创建索引、重建索引、查询索引、删除索引
1、创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。 以下命令语句分别展示了如何创建主键索引(PRIMARY KEY)、 唯一索引(UNIQUE)、 全文索引(FULLTEXT)、 普通索引(INDEX)的方法。 mysql>ALTER TABLE `ta...转载 2019-05-31 16:27:39 · 10451 阅读 · 0 评论 -
mysql字符集
在 MySQL 中关于 8个 character_set 变量的基本作用通过sql可以查看:SHOW VARIABLES LIKE '%char%';character_set_client : 用来设置客户端使用的字符集,一般用来设置数据传输和SQL传输的字符集。character_set_connection : 用来设置连接数据库时的字符集,如果程序中没...原创 2019-05-31 15:10:01 · 358 阅读 · 0 评论 -
mysql查询优化器提示( hint )
查询优化器提示( hint ) : 一般指改变 mysql 优化器的执行计划, 除非业务需要, 不建议这样做。查询优化器提示( hint ) 1. HIGH_PRIORITY 、 LOW_PRIORITY HIGH_PRIORITY: 提示mysql该语句优先执行 LOW_PRIORITY: 提示mysql该语句处于等待执行, 有可能出现一...原创 2019-05-28 17:17:13 · 5077 阅读 · 1 评论 -
MySQL缓存分类
MySQL缓存分类 InnoDB缓冲池 InnoDB日志文件和MyIsAM数据的操作系统缓存 MyIsAM键缓存 查询缓存 无法手工配置的缓存,例如 二进制日志,表定义文件的操作系统缓存 其它缓存,通常不需要太多内存InnoDB缓冲池 (innodb_buffer_pool_size) 作用: 1.缓存的对象包括:数据行,索引,插入缓冲,锁,以及内部数据结...原创 2019-06-05 13:49:34 · 388 阅读 · 0 评论 -
MySQL show processlist
查询状态 SHOW PROCESSLIST; SHOW FULL PROCESSLIST; select * from information_schema.processlist WHERE command !='Sleep'; KILL [CONNECTION | QUERY] processlist_id CONNECTION:默认值...原创 2019-05-24 18:17:12 · 385 阅读 · 0 评论 -
sql优化-Explain
Explain信息解读SelectType信息解读SIMPLE: 简单SELECT(不使用UNION或子查询等).Type信息解读 const: const用于使用常数值比较PRIMARY KEY时, 当查询的表仅有一行时, 使用system. 例:SELECT * FROM tbl WHERE col = 1. eq_ref: 除const类型外最好的可能实现的连接类型...原创 2019-05-15 11:11:27 · 500 阅读 · 0 评论 -
mysql 修护优化
Analyze TableMySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX FROM...转载 2019-05-14 18:03:13 · 94 阅读 · 0 评论 -
分布式数据库唯一ID生成方案
一、前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性: 整个系统ID唯一 ID是数字类型,而且是趋势递增的 ID简短,查询效率快 什么是递增?如:第一次生成的ID为1...转载 2019-04-25 13:26:52 · 2345 阅读 · 1 评论 -
MySQL 学习笔记
/* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行S...转载 2019-04-25 10:33:19 · 174 阅读 · 0 评论 -
Mysql设置auto_increment_increment和auto_increment_offset
查看与设置: show variables like '%auto_inc%'; show session variables like '%auto_inc%'; -- //session会话变量 show global variables like '%auto_inc%'; -- //全局变量 SET @auto_increment_in...转载 2019-06-27 14:30:10 · 23947 阅读 · 3 评论 -
MySQL的分片
前言从开发人员的角度来说,为什么要了解和掌握MySQL分片?第一,了解MySQL分片可以更合理地定制分片策略,选分片字段是要讲科学的。第二,了解MySQL分片以后如果出现故障报错,也有助于问题的排查。第三,关系到开发过程中的代码调整,做分片后的MySQL数据库操作受到限制,比如join之类的操作,跨分片的操作,事务管理等,都是要注意的,可能需要代码的调整。分区、分表、分片、分库的...转载 2019-06-27 15:11:20 · 19841 阅读 · 0 评论 -
innodb_locks_unsafe_for_binlog
innodb默认使用了next-gap算法,这种算法结合了index-row锁和gap锁。正因为这样的锁算法,innodb在可重复读这样的默认隔离级别上,可以避免幻象的产生。innodb_locks_unsafe_for_binlog最主要的作用就是控制innodb是否对gap加锁。注意该参数如果是enable的,则是unsafe的,此时gap不会加锁;反之,如果disable掉该参数,...转载 2019-06-27 17:11:24 · 2100 阅读 · 0 评论 -
MySQL与Btree
Btree,B+tree,B*tree前言:由于在查找中用二分法在查找一些边缘数据时就会产生数据查找不公平,二叉树也存在类似问题:所以就有了B-tree.B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡...转载 2019-08-07 10:28:08 · 159 阅读 · 0 评论 -
MySQL重要知识点
什么是MySQL?MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。事...转载 2019-07-22 19:50:18 · 178 阅读 · 0 评论 -
ElasticSearch VS. Solr VS. Sphinx:最好的开源搜索引擎比较
编译自:ELASTICSEARCH VS. SOLR VS. SPHINX: BEST OPEN SOURCE SEARCH PLATFORM COMPARISON作者:Anna Klimenko从业务角度来看,您应该将高效的搜索引擎视为一种强大的工具,能够提高转换率并为网站所有者带来更多利润。如果您的网站搜索机制没有提供相关结果或搜索性能太低,用户将离开网站并转到其竞争对手。那么,什...转载 2019-07-22 13:44:35 · 1820 阅读 · 0 评论 -
InnoDB监控机制
一、背景在mysql处理死锁问题时,由于show engine innodb status输出来的死锁日志无任务事务上下文,并不能很好地诊断相关事务所持有的所有锁信息,包括:锁个数、锁类型等。二、INNODB监控机制(InnoDB Monitors)1. mysql提供一套INNODB监控机制,用于周期性(每15钞)输出INNODB运行相关状态(INNODB运行状态、表空间状态、表状态...转载 2019-07-22 11:07:52 · 292 阅读 · 0 评论 -
mysql的flush logs
在mysql中 FLUSH LOGS; 操作会生成一个新的binlog文件。如果在从库执行flush logs 不仅会生成一个新的binlog文件,而且会生成一个新的relaylog文件。不仅如此,flush logs 还影响slow log和general log,当删除slow log或者general log,然后执行flush logs,此时会再重新生成一个新的slow lo...转载 2019-07-22 10:44:58 · 4839 阅读 · 0 评论 -
auto_increment 在联合索引的使用区别
1. INNODB 联合索引中使用 自增必须在最左, 还是会每次自增, 不在最左不支持2. MYISAM 联合索引可以不在最左 最左位置: 每次自增 不在最左未知: 是否增加受期前缀唯一性影响, 唯一不增加, 不唯一增加CREATE TABLE test_incre_myisam( id INT NOT NULL auto_incre...原创 2019-07-25 14:34:24 · 305 阅读 · 1 评论 -
MySQL日志相关配置
expire_logs_days={0..99}设定二进制日志的过期天数,超出此天数的二进制日志文件将被自动删除。默认为0,表示不启用过期自动删除功能。如果启用此功能,自动删除工作通常发生在MySQL启动时或FLUSH日志时。作用范围为全局,可用于配置文件,属动态变量。general_log={ON|OFF}设定是否启用查询日志,默认值为取决于在启动mysqld时是否使用了--gene...转载 2019-07-19 17:37:58 · 395 阅读 · 0 评论 -
MySQL日志总结
MySQL日志MySQL中有七种日志文件,分别是1. 重做日志(redo log)2. 回滚日志(undo log)3. 二进制日志(binlog)4. 错误日志(errorlog)5. 慢查询日志(slow query log)6. 常规日志(general log)7. 中继日志(relay log)详细介绍1. 重做日志(redo log)作用重做日志(red...原创 2019-07-19 16:47:49 · 410 阅读 · 1 评论 -
SQL语言分类定义
SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言。它功能强大,效率高,简单易学易维护。SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。SQL结构化查询语言包含6个部分1.数据查询语言(DQL:...原创 2019-07-19 15:23:24 · 433 阅读 · 0 评论