随笔分类 - MySql
摘要:1. 存储过程与游标循环 DROP PROCEDURE IF EXISTS LES_PARENT_DATA_MIGRATE; DELIMITER ;; CREATE PROCEDURE LES_PARENT_DATA_MIGRATE() BEGIN DECLARE done INT DEFAULT
阅读全文
摘要:1. 查询所有父节点 SELECT T2.* FROM ( SELECT @R AS _id, ( SELECT @R := PARENT_ID FROM sys_org WHERE ID = _id ) AS PARENT_ID, @L := @L + 1 AS LVL FROM (SELECT
阅读全文
摘要:一、数据库命名规范 数据库名统一使用小写,禁止出现大写 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简洁明确,多个单词用下划线’‘分隔,一个项目一个数据库,多个项目慎用同一个数据库 二、表命名规范 表命名采用26个英文字母(区分大小写)和0-9的自然数(经常
阅读全文
摘要:MySql 常用语句 -- 查看当前打开的表 SHOW OPEN TABLES WHERE IN_USE > 0; -- 查看当前的MYSQL执行进程详细 SHOW FULL PROCESSLIST; -- 结束某个进程 kill pid -- 命令是用来查看当前运行的所有事务: SELECT *
阅读全文
摘要:MySQL下创建新用户、新数据库、设定访问权限控制都需要用到root密码。万一把root密码忘了,该怎么办,幸运地是,重设密码很容易。 注意:MySQL的root用户和服务器操作系统的root用户是两个不同的用户,不要搞混了。 安全模式重置法 基本的思路是,以安全模式启动mysql,这样不需要密码可
阅读全文
摘要:业务需求最近要在系统中加个统计功能,要求是按指定日期范围里按天分组统计数据量,并且要能够查看该时间段内每天的数据量。 解决思路直接按数据表日期字段group by统计,发现如果某天没数据,该日期是不出现的,这不太符合业务需求。百度一番发现方案大致有两种:一是新建日期列表,把未来10年的日期放进去,然
阅读全文
摘要:解除正在死锁的状态有两种方法: 第一种: 1.查询是否锁表show open tables where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)show processlist 3.杀死进程id(就是上面命令的id列)kill
阅读全文
摘要:MySQL按日期分组并统计截止当前时间的总数 建表语句 表结构如下所示:REG_COUNT 表示当天新增的用户数 现在的需求是这样的:按每天分组,查询当天新增的用户总数和截止到当前时间新增的用户总数,结果如下: SQL语句如下: 解释一下:SELECT @total := 0,,这句的意思是给临时变
阅读全文
摘要:使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度) 第一步:创建Sequence管理表 sequence 第二步:创建取当前值的函数 currval 第三步:创建取下一个值的函数 nextval 第四步:创建更新当前值的函数 setval 测试函数功能 当上述四步完成后,可以用以下数
阅读全文
摘要:MySQL中的事务,默认是自动提交的,即autocommit = 1; 但是这样的话,在某些情形中就会出现问题:比如: 如果你想一次性插入了1000条数据,mysql会commit1000次的, 如果我们把autocommit关闭掉[autocommit = 0],通过程序来控制,只要一次commi
阅读全文
摘要:本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也
阅读全文
摘要:MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索
阅读全文
摘要:1. kingbus简介 1.1 kingbus是什么? kingbus是一个基于raft强一致协议实现的分布式MySQL binlog 存储系统。它能够充当一个MySQL Slave从真正的Master上同步binglog,并存储在分布式集群中。同时又充当一个MySQL Master将集群中的bi
阅读全文
摘要:1. 【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 说明:不要以为唯一索引影响了insert速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。 2. 【强制】超过三个表禁止j
阅读全文
摘要:一、数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为
阅读全文
摘要:方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,
阅读全文
摘要:无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢? 1、如何快速掌握MySQL? 培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 夯实基础 计算机领域的
阅读全文
摘要:MySQL优化概述 MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈。 CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。 磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上。 我们可以用mpstat, ios
阅读全文
摘要:在互联网项目中,当业务规模越来越大,数据也越来越多,随之而来的就是数据库压力会越来越大。 我们可能会采取各种方式去优化,比如之前文章提到的缓存方案,SQL优化等等,除了这些方式以外,这里再分享几个针对数据库优化的常规手段:「数据读写分离」与「数据库Sharding」。这两点基本上是大中型互联网项目中
阅读全文
摘要:对于常规的MySQL数据表中可能存在重复的数据,有些情况是允许重复数据的存在,有些情况是不允许的,这个时候我们就需要查找并删除这些重复数据,以下是具体的处理方法! 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQ
阅读全文