![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 54
sinat_37138973
这个作者很懒,什么都没留下…
展开
-
记一次Mysql连接失败的处理过程
另:timeout设置未生效,后来改成直接再my.cnf中直接修改。添加Mysql配置后,未解决问题。结果发现,除了第一次成功,其他均失败。随即使用如上命令测试22和6379等常用端口,均出现同样问题,以为是网络出现问题。但是通过分析发现只有第一次成功的问题,通过检查相关内容,有如下结论:当你使用命令时,每次执行telnet都会尝试建立一个新的连接到localhost的22端口(默认是SSH服务端口)。原创 2024-07-17 18:20:41 · 310 阅读 · 0 评论 -
数据库迁移
项目需要做异地/异构数据库的数据同步,要实现全量及增量。网络上有些软件实现异构数据库的同步,但是离线版本基本都收费,就放弃了。如下方案都是开源软件。需求:Oracle---->Oracle/mysql/pg。方案一:Oracle官方提供了Ogg(Oracle GoldenGate)的软件可以实现同构或异构数据库的同步。原理就是在源库所在机器和目标库所在机器分别安装OGG软件,做配置实现同步。不过测试过程中发现Mysql版本的OGG安装始终有问题,故放弃此方案。方案三:利用nav原创 2022-04-27 15:39:50 · 390 阅读 · 0 评论 -
Mysql开启审计日志、忽略大小写配置
开启审计日志1、查看mysql的general_log文件位置及名称;show variables like '%general_log%';show variables like '%general_log_file%';在Mysql命令行执行:SET GLOBAL general_log = 'ON';-- SET GLOBAL general_log = 'OFF';忽略大小写在Mysql5.8之前的版本,在my.cnf中[mysqld]下添加如下内容并重启:lo原创 2021-12-13 21:02:11 · 1574 阅读 · 0 评论 -
Mysql 存储过程
无参数存储过程DROP PROCEDURE IF EXISTS sta_base_update;CREATE PROCEDURE sta_base_update()BEGINDECLARE done INT DEFAULT 0;DECLARE areaId CHAR(6);.......END ;根据List 循环执行DROP PROCEDURE IF EXISTS sta_base_update;CREATE PROCEDURE sta_base_updat..原创 2021-09-10 12:46:09 · 75 阅读 · 0 评论 -
MySQL存储引擎中的MyISAM和InnoDB
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。InnoDB是My原创 2017-04-08 17:44:25 · 258 阅读 · 0 评论 -
MySQL中的实例、数据库的关系
Mysql的简介1、MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号不同的mysql,或者通过workbench来新建一个端口号不同的服务器实例等),该架构类似于SQL Server和Windows版本的Oracle;2、MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的(My转载 2018-01-22 15:08:03 · 3496 阅读 · 0 评论 -
MySQL 主从同步
主从同步的原理图:主从同步描述: 1、设置主从服务器的server-id为不同数字; 2、设置主库log_bin目录等配置; 3、设置从库relay-log目录等配置; 4、主库给从库授权访问; 5、在从服务器上设置同步命令; 6、start slave;1、在配置好主从同步以后, 主服务器会把更新语句写入binlog, ; 2、从服务器的IO 线程(这里要注转载 2018-03-13 16:59:37 · 219 阅读 · 0 评论 -
(转)MySQL性能优化之Block Nested-Loop Join(BNL)
一、介绍5.5 版本之前,MySQL本身只支持一种表间关联方式,就是嵌套循环(Nested Loop)。如果关联表的数据量很大,则join关联的执行时间会非常长。在5.5以后的版本中,MySQL通过引入BNL算法来优化嵌套执行,本文介绍两种join算法 Nested-Loop Join (NLJ) 和Block Nested-Loop Join(BNL) 。二、原理2.1 Nested Loop ...转载 2018-07-10 12:22:47 · 1887 阅读 · 0 评论 -
MySQL 深翻页
SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20;LIMIT10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行。 问题就在这里,如果是LIMIT 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。文中还提到LIMIT n性能是没问题的...转载 2018-07-10 18:11:20 · 513 阅读 · 0 评论 -
MySQL应对并发的思考
目录一、索引优化二、请求合并请求合并合并的分析方法三、需求裁剪四、分布式数据库及反范式设计基本认识去关联化原则分库方案分表方案反范式设计(冗余结构设计)反范式设计的概念冗余结构设计所面临的典型场景冗余设计方案五、认识负载负载的构成负载增长趋势系统阈值异常的监控和跟踪一、索引优化参见“索引优化”的单独章节。二、请...转载 2018-07-11 14:40:42 · 326 阅读 · 0 评论 -
OLTP和OLAP
OLTP和OLAP数据库领域中大家经常会看到两个词:OLTP及OLAP。举例说明,比如进行一次交易,资金从A帐户转帐到B帐户,这整个过程就是一次交易事务。如果过程中有任何系统错误,交易会回滚A帐户中的金额都回恢到操作前的状态,这就是On-Line Transaction Processing联机事务处理过程(OLTP)的操作。在OLTP场景中用户并发操作量会很大,要求系统实时进行数据操作的响应,在查转载 2017-12-27 15:31:50 · 252 阅读 · 0 评论 -
MySQL使用总结
使用规则不在数据库做计算,CPU计算务必移到业务层控制单表数据量,单表记录控制在千万级控制列数量,字段数据控制在20以内平衡范式与冗余,为提高效率可以牺牲范式设计,冗余数据拒绝:大Sql,大事务,大批量字段使用规则避免使用NULL字段不再数据库存储图片(base64)表操作唯一索引列可以为NULL。MYSQL默认是要区分表名大小写的,Mysql的表名/字段名/字段值是否区分大原创 2017-12-26 13:45:48 · 281 阅读 · 1 评论 -
常用SQL语句总结
常用SQL语句总结查询某个分组类别的其中某个字段是否有重复数据select user_id,seq_num ,count(seq_num) from user_bill group by user_id,seq_numhaving count(seq_num)>1分组取每组前几条记录(排序)select a.* from user_bill a where ( select count(id)原创 2017-04-01 10:23:12 · 336 阅读 · 0 评论 -
MySQL使用总结
表操作唯一索引列可以为NULL。MYSQL默认是要区分表名大小写的,Mysql的表名/字段名/字段值是否区分大小写默认情况下是否区分大小写(影响表名、字段名、varchar字段内容),使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分。设置为不区分时,实际原创 2017-06-03 12:00:43 · 235 阅读 · 0 评论 -
MySQL分区表
分区表语法分区表的应用分区表的问题分区表的查询条件分区表是一种粗粒度,简易的索引策略,适用于大数据的过滤场景.最适合的场景是,没有合适的索引时,对其中几个分区表进行全表扫描.或者只有一个分区表和索引是热点,而且这个分区和索引能够全部存储在内存中。限制单表分区数不要超过150个,并且注意某些导致无法做分区过滤的细节,分区表对于单条记录的查询没有优势,需要注意这类查询的...转载 2017-06-28 16:14:46 · 287 阅读 · 0 评论 -
MySQL性能优化-数据库配置
一、查询1.1 关于In操作符在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替。NOT IN操作是强列不推荐使用的,因为它不能应用表的索引,推荐树勇NOT EXISTS代替。1.2 关于NULL判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的。用其它相同功能的操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段为空,而用一个缺省值代替空转载 2017-04-01 10:21:17 · 622 阅读 · 0 评论 -
MySQL性能优化-查询优化
如何发现有问题的SQL使用MySQL慢查询日志慢查询日志的存储格式MySQL慢查询日志分析工具之mysqldumpslowMySQL慢查询日志分析工具之pt-query-digestMySQL执行计划查询优化Select 语句关于In操作符关于NULLLIKE操作符Exists、In与Join的比较Join的性能分析Where语句条件顺序Limit查询尾...转载 2017-06-22 09:37:43 · 308 阅读 · 0 评论 -
MySQL性能优化-索引
索引索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有 必要。应尽可能的避免更新 clustered 索引数据列,因为 clustered 索引转载 2017-06-22 14:06:50 · 258 阅读 · 0 评论 -
MySQL中的锁
一、SQL语句使用注意事项1. alter table 锁表二、锁、事务、隔离级别0. 基础知识1. 锁的分类2. 锁粒度(Lock granularity)3. 事务(Transaction)4. 隔离级别(Isolation Level)5. select… for update6. 乐观锁 悲观锁7. 具体问题分析7.1 解决并发更新同一数据的问题(先sel...原创 2017-04-01 10:27:29 · 603 阅读 · 0 评论 -
MySQL性能优化-数据库设计
的转载 2017-06-22 16:17:54 · 302 阅读 · 0 评论 -
MySQL基本概念
临时表临时表可能是非常有用的,在某些情况下,保持临时数据。最重要的是应该知道的临时表是,他们将当前的客户端会话终止时被删除。当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。表建在内存里,数据在内存里。创建临时表很容易,给正常的CRE...转载 2017-06-23 17:58:23 · 279 阅读 · 0 评论 -
MySQL遇到的问题综述
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BMySQL建表有个长度限制:MySQL要求一个行的定义长度不能超过65535。(1)单个字段如果大于65535,则转换为TEXT 。 (2)单行最大限制为65535,这里不包括TEXT、BLOB。转载 2017-04-08 17:29:35 · 230 阅读 · 0 评论