MySql
hanchao5272
路漫漫其修远兮,吾将上下而求索。https://hanchao.blog.csdn.net/
展开
-
MySql:分页查询limit的正确用法
MySql:分页查询limit的正确用法-- 原始分页查询-- 4500 ms-- 慢的原因:1.* 2.limit太大select * from post_history limit 2000000,10;-- 用明确字段代替*-- 1600msselect id,uid,media_id,media_name,news_id,comment from post_histo...原创 2019-10-28 23:01:19 · 5573 阅读 · 0 评论 -
关于MySql在线DDL神器pt-online-schema-change的几篇文章推荐
MySQL 大表在线DML神器–pt-online-schema-change原理安装常用操作、命令、执行过程添加字段修改字段改名字段删除字段添加索引删除索引问题Cannot connect to MySQL: install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted....转载 2019-03-26 16:52:45 · 725 阅读 · 0 评论 -
Illegal mix of collations (...) and (...) for operation 不修改表结构处理方法
简述两个字段进行比较的SQL,出现错误。# 无需在意逻辑select *from article As ar left join author AS au on ar.author_id = au.idwhere ar.author <> au.name;错误Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) ...原创 2019-05-19 16:30:37 · 1726 阅读 · 2 评论 -
Mac os下安装pip并下载mysql-python
下载pipadmindeMacBook-Pro:openApi admin$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py % Total % Received % Xferd Average Speed Time Time Time Current ...原创 2019-05-19 16:35:02 · 4459 阅读 · 0 评论 -
MySql通过Sharding-Sphere分库分表之后的在线DDL方案总结
1.概述之前,通过二次开发的分库分表中间件Sharding-Shere实现了对MySql的分表。由于某些原因,分库分表之后,原表和分表都在提供服务。现由于某些需求,需要对原和分表增加若干字段,并要求不能影响线上服务。此文章是对在线DDL的总结,前置文章如下:记一次分库分表——改造策略总结2.如何保证不影响线上服务经过调研,最终采用的是在线DDL插件:pt-online-schem...原创 2019-06-16 11:27:51 · 3168 阅读 · 1 评论 -
MySql时间戳timestamp与长整形long的数据转换
简述时间的时间戳表示:默认格式为'%Y-%m-%d %H:%m:%s',例如:2019-07-06 15:18:47。时间的长整型表示形式:长度为10位,即表示的是秒数,从1970年1月1日开始的。获取当前时间的时间戳形式mysql> select current_timestamp;+---------------------+| current_timestamp |...原创 2019-07-18 17:42:54 · 20151 阅读 · 3 评论 -
MySql表结构自动初始化的create_time与自动更新的update_time
简述在表结构设计时,经常会设计两个字段:数据创建时间create_time与数据更新时间update_time。但是在后期开发中,往往因为各种原因,导致忘了初始化create_time或者更新update_time。本文的目的是通过MySql的以下机制完成create_time的自动初始化与update_time的自动更新:DEFAULT:默认值机制。CURRENT_TIM...原创 2019-07-18 17:46:09 · 2913 阅读 · 1 评论 -
一篇文章掌握MySql索引的语法、分类、实现原理、失效场景及优化策略
1.简介1.1.什么是索引索引是对记录集的多个字段进行排序的方法。在一张表中为一个字段创建一个索引,将创建另外一个数据结构,包含字段数值以及指向相关记录的指针。数据库的索引,可以理解为字典的目录,能够帮助我们快速找到需要查询的字。1.2.为什么需要索引使用索引的目的就是为了提高查询效率。假定表中存在5,000,000条记录,共需要1,000,000个磁盘块,当前查找字段为身份证号...原创 2019-08-03 17:47:07 · 2379 阅读 · 0 评论 -
MySqL: 并发量大、数据量大的互联网业务数据库设计军规
一、基础规范1.1.必须使用InnoDB引擎解读:支持事务、行级锁,并发性能好、CPU及内存缓存页优化使得资源利用率更高。1.2.必须使用utf8mb4编码解读:万国码,无需转码,无乱码风险,节省空间。1.3.必须为表、字段添加注释解读:不要给后来者挖坑。1.4.禁止使用存储过程、触发器、视图、Event解读:高并发大数据的互联网业务,架构设计思路是解放数据库CPU,将计算转移...转载 2019-08-05 11:40:10 · 562 阅读 · 0 评论 -
MySql: 浅谈主从复制简介、原理、方式
1.简介随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。在此之前我们必须要保证每台MySQL服务器里的数据同步。数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。MySQL数据库自身提供的主从...转载 2019-08-05 16:51:47 · 394 阅读 · 0 评论 -
MySql: 事务特性ACID、三大并发读、四种事务隔离级别
1.事务特性ACID1.1.原子性Atomicity原子性:事务的所有操作,要么全部执行,要么全部不执行,不存在部分执行成功的情况。如果执行过程中出错,则应该回滚rollback到事务开始前的状态。事务是一个不可分割的整体。1.2.一致性Consistency一致性:事务执行完成之后,数据应该满足完整性约束。举例:事务执行前A、B的存款都是100,事务内容是A转账B,则事务执行...原创 2019-08-05 20:59:36 · 2576 阅读 · 11 评论 -
MySql: 表级锁、行级锁、共享锁、排他锁、乐观锁、悲观锁
1.表级锁与行级锁表级锁:table-level locking,锁住整个表。开销小,加锁快。不会死锁(一次性加载所需的所有表)。锁粒度大,发生锁冲突概率大,并发效率低。适合查询。行级锁:row-level loking,锁住一行记录。开销大,加锁慢。会死锁。锁粒度小,发生所冲突概率小,并发效率高。适合并发写,事务控制。并不是直接丢记录行加锁,而是对行对应的索引加锁...原创 2019-08-06 13:04:53 · 4474 阅读 · 1 评论 -
记一次MySql服务器磁盘负载持续升高问题的优化
背景新年上班第一天,还没来得及从过年的氛围中缓过劲来,就收到了某个接口A的大量警报。分析过程备注:基于保密考虑,后续相关数据和分析图都是基于事实上进行的模拟。分析接口A耗时总览首先查看接口A的耗时图:有以下几个关注点:接口耗时之前稳定在50ms左右。接口耗时从2月2日开始持续上升至200ms左右。以上只是正常不报警的接口的耗时情况。基于接口A的警报阈值为3s,也就是说,还...原创 2019-02-15 15:22:02 · 1562 阅读 · 2 评论 -
通过在SpringBoot中配置连接池属性解决MySql连接池Communications link failure问题
文章目录1.错误日志2.错误分析3.纠错方法3.1.说明3.2.添加依赖3.2.配置连接池属性1.错误日志2018-10-11 04:00:15,642 ERROR traceId:0 com.alibaba.druid.pool.DruidDataSource:1600 - discard connection -- Exception: com.mysql.jdbc.exception...原创 2018-10-12 20:27:07 · 11560 阅读 · 0 评论 -
MySql导入导出文件
说明在进行分库分表数据迁移时,用到了MySql的导入导出(infile/outfile)功能实现数据的批量操作。示例# 导出mysql> select * into outfile '/home/hanchao/t_person0' from t_person where id % 16 = 0;# 导入mysql> load data infile '/h...原创 2018-08-28 20:55:07 · 531 阅读 · 0 评论 -
Mysql:开启了log-bin的MySQL Server中创建FUNCTION
1.错误信息在开启了bin-log模式的Mysql服务中,创建Function失败。Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want原创 2018-01-13 14:48:58 · 948 阅读 · 0 评论 -
MySql禁用外键
#禁用外键SET foreign_key_checks = 0; #恢复外键SET foreign_key_checks = 1;原创 2018-02-01 11:00:07 · 1448 阅读 · 0 评论 -
MySql自动清除binary logs日志
1.背景某个项目为了实现通过Canal将MySql自动同步至Redis的目的,开启了MySql的log-bin模式(binary-log,二进制日志)。开启方式很简单,这里只是给出初步介绍://关闭MySql服务//vi /etc/my.cnf[mysqld]...log-bin=mysql-bin...//开启MySql服务开启了二进制日志后,我们确实实现了Re原创 2018-02-01 13:44:18 · 6881 阅读 · 1 评论 -
Mysql和Oracle:最大连接数以及表名、字段名相关操作
1.查看和修改最大连接数oracle--查看当前的session连接数select count(*) from v$session;--查看数据库允许的最大连接数select value from v$parameter where name ='processes';--修改最大连接数:alter system set processes = 600 scope = spf原创 2018-01-18 18:01:38 · 703 阅读 · 0 评论 -
PLSQL Developer、Mysql WorkBench以及Navicat常用快捷键
1.PLSQL Developer运行当前行:F8 前提[tools->preferences->sql window->autoSelect Statement(自动选择语句),注意语句要以';'结尾。]运行所有行:F8 前提[不开启autoSelect Statement(自动选择语句)功能]解释计划:F52.Mysql WorkBench运行当前行:Ctrl +原创 2018-01-18 18:02:51 · 1678 阅读 · 0 评论 -
MySql、Oracle中大小写转换
1.方法清单 方法 MySql Oracle 转换大写 upper()、ucase() upper() 转换小写 lower()、lcase() lower()ps:推荐MySql使用upper()和lower(),方便与其他数据库方法兼容。2.示例Oracle示例SQL> select upper('Oracle')原创 2018-01-30 15:56:10 · 2685 阅读 · 0 评论 -
通过Canal保证某网站的Redis与MySql的数据自动同步
前置文章: 某网站Redis与MySql同步方案分析使用Canal的主要目的:让自动同步代替部分手动同步,降低开发人员工作量,避免部分数据一致性问题。本文主要讲解如何配置Canal,以保证某网站的Redis与MySql的数据自动同步。1.Java开发原则下面列出一些本项目的开发原则:1.1.Redis的KEY命名规范项目名称-模块名称-对象名称-主键id例如...原创 2018-04-02 17:36:43 · 3335 阅读 · 2 评论 -
某网站Redis与MySql同步方案分析
后续文章: 通过Canal保证某网站的Redis与MySql的数据自动同步1.编写目的某网站项目引入了redis缓存技术,如何保证Redis与MySql的数据一致性是开发人员需要首要解决的问题。本文主要包括以下内容:Redis与MySql的数据一致性方案汇总与选取Canal解析binlog方案简介其他Redis开发原则2.方案汇总与选取下面展示了几种常见的R...原创 2018-03-28 16:22:05 · 9497 阅读 · 0 评论 -
MySQL存储引擎中的MyISAM和InnoDB区别详解
原文地址:MySQL存储引擎中的MyISAM和InnoDB区别详解在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了如下信息:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访...转载 2018-03-28 16:49:41 · 536 阅读 · 0 评论 -
Host '****' is not allowed to connect to this MySQL server
错误信息今天在VMWare上的Ubuntu上配置Solr服务时报错:Caused by: java.sql.SQLException: null, message from server: "Host 'DESKTOP-FG4HTMB' is not allowed to connect to this MySQL server" at com.mysql.jdbc.SQLErr...原创 2018-04-17 18:14:07 · 1136 阅读 · 0 评论 -
MySql导入包含LONGTEXT类型的psc备份文件报错MySQL server has gone away错误
报错信息备份文件:180525181020.psc,大小:262 MB,报错信息:[Msg] Table Restored: table_111111[Msg] Table Restored: table_222222[Msg] Table Restored: table_333333[Msg] 2006 - MySQL server has gone away[Msg] Tabl...原创 2018-06-01 17:13:38 · 1151 阅读 · 0 评论 -
MySql:Establishing SSL connection without server's identity verification is not recommended
1.全部警告信息Wed Jan 10 21:13:40 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL conn原创 2018-01-10 21:19:39 · 6486 阅读 · 6 评论