
mysql
mysql的一些内容
风水道人
另外本人100多年的开发经验,不要质疑大师,质疑那就是你的错。
展开
-
MYSQL 单表可以放多少数据是怎么计算出来的
MySQL 的底层结构用 B+ 树存储。为了便于后续讲解,先普及几个概念:对于非聚集索引,B+ 树的叶子节点和非叶子节点存储的都是索引指针;对于聚集索引,B+ 树的非叶子节点存储的是索引指针,叶子节点存储的是数据,顺序排列;InnoDB 中的 B+ 树的高度一般会保持在 3 层以内,我们就以 3 层来定。下图是聚集索引,3 层 B+ 树的结构:虚线部分,可以找到对应页码的数据,这里很基础,不去过多解读。原创 2023-12-23 21:34:59 · 2001 阅读 · 0 评论 -
MySQL性能优化
InnoDB的架构图、落盘机制、WAL(Write ahead redo log)、Force-log-at-commit、checkpoint机制。record lock、gap lock、next key lock、RR和RC隔离级别、MVCC机制、主键索引、辅助索引。record lock、gap lock、next key lock、RR和RC隔离级别、MVCC机制、主键索引、辅助索引。MySQL优化器、主键索引、唯一索引、非唯一索引、组合索引、索引覆盖。原创 2023-11-07 12:16:17 · 66 阅读 · 0 评论 -
mysql报Toomanyconnection的问题
mysql报Toomanyconnection的问题原创 2023-11-07 12:10:29 · 348 阅读 · 0 评论 -
Linux启动停止重启Mysql数据库针对各个版本的数据库
Linux启动停止重启Mysql数据库针对各个版本的数据库原创 2023-11-07 12:08:18 · 358 阅读 · 0 评论 -
mysql一条sql查询出多个统计结果
【代码】mysql一条sql查询出多个统计结果。原创 2023-11-07 12:06:45 · 714 阅读 · 0 评论 -
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败原创 2023-11-06 15:49:09 · 1315 阅读 · 0 评论 -
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
MySQL连接ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded原创 2023-11-06 12:52:13 · 2031 阅读 · 0 评论 -
mysql报Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts‘。
mysql报Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'。原创 2023-11-06 12:50:28 · 2982 阅读 · 0 评论 -
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案原创 2023-11-06 12:49:08 · 99 阅读 · 0 评论 -
mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法原创 2023-11-06 12:47:47 · 558 阅读 · 0 评论 -
SQL查找是否存在SQL正确使用
SQL查找是否存在SQL正确使用原创 2023-11-06 12:46:36 · 611 阅读 · 0 评论 -
mysql-SQL从一个表查询数据插入/更新到另一个表
mysql-SQL从一个表查询数据插入/更新到另一个表原创 2023-11-06 12:42:21 · 2291 阅读 · 0 评论 -
把PostgreSQL的表导入SQLite
把PostgreSQL的表导入SQLite原创 2023-07-04 14:31:47 · 462 阅读 · 0 评论 -
Field ‘xxx‘ doesn‘t have a default value
Field 'xxx' doesn't have a default value原创 2022-12-06 17:23:19 · 895 阅读 · 0 评论 -
MYSQL存储过程基础入门教程
MYSQL存储过程基础入门教程原创 2022-06-18 15:38:53 · 508 阅读 · 0 评论 -
MySQL入门基础教程
MySQL入门基础教程原创 2022-06-18 15:35:57 · 183 阅读 · 0 评论 -
MySql now函数
MySql now函数原创 2022-06-18 15:28:28 · 1363 阅读 · 0 评论 -
mysql的binlog恢复数据
D:\Program Files\MySQL\MySQL Server 5.5\bin>mysqlbinlog.exe --no-defaults --database=pro --base64-output=decode-rows -v E:\mysql-bin\mysql-bin.000005 > E:\mysql-bin\binlog007.sqlMySQL的binlog 日志对于生产环境非常有用,任何时间对数据库的修改都会记录在binglog中;当数据发生增删改,创建数据库对象都会.原创 2021-11-18 21:27:20 · 172 阅读 · 0 评论 -
mysql中force index强制索引
对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。其他强制操作,优先操作如下:mysql常用的hint对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1)原创 2021-05-29 15:50:50 · 576 阅读 · 0 评论 -
mysql下出现Unknown column ‘xx‘ in ‘on clause‘的完全解决方法
mysql下出现Unknown column 'xx' in 'on clause'的完全解决方法在项目中执行查询无结果,在数据库运行sql报错:Unknown column 'xx' in 'on clause' ! #MySQL5.0 Bug, 要把联合的表用括号包含起来才行: SELECT (c.id, a.id, b.id) FROM A a, B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id # 这句话执原创 2021-05-24 14:24:41 · 8485 阅读 · 0 评论 -
mysql基础教程
1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create .原创 2021-05-14 07:11:23 · 86 阅读 · 0 评论 -
Mysql中count(*)和limit同时使用的问题
首先来了解一下MYSQL 中的 COUNT(*)count()四种写法:count(*) 包括所有列,相当于统计表的行数,不忽略列值为NULL的记录。count(1) 忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,不忽略列值为NULL的记录。count(列名) 只包括指定列,返回指定列的记录数,会忽略列值为NULL的记录。count(distinct 列名) 只包括列名指定列,返回指定列的不同值的记录数,忽略列值为NULL的记录执行效率比较若列为主键,coun原创 2021-05-08 10:36:10 · 7162 阅读 · 0 评论 -
6种常见分布式唯一ID生成策略及它们的优缺点对比
全局唯一的 ID 几乎是所有系统都会遇到的刚需。这个 id 在搜索, 存储数据, 加快检索速度 等等很多方面都有着重要的意义。有多种策略来获取这个全局唯一的id,针对常见的几种场景,我在这里进行简单的总结和对比。简单分析一下需求所谓全局唯一的 id 其实往往对应是生成唯一记录标识的业务需求。这个 id 常常是数据库的主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。这个记录标识上的查询,往往又有分页或者排序的业务需求。所以往往要有一个time字段,并且在t原创 2021-05-06 21:11:30 · 212 阅读 · 0 评论 -
一款SQL自动检查神器,再也不用担心SQL出错了,自动补全、回滚等功能大全
介绍Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!开源地址https://gitee.com/cookieYe/Yearning功能介绍 SQL查询查询导出查询自动补全 SQL审核流程化工单SQL语句检测SQL语句执行SQL回滚 历史审核记录 查询审计 推送E-mail工单推送钉钉webhook.原创 2021-04-20 22:57:52 · 109 阅读 · 0 评论 -
mysqlSQL 优化
这篇文章总结了 52 条 SQL 性能优化技巧,用简洁明了的语言介绍给大家,不废话全是干货,需要的可以收藏,退出。不不不,收藏,看完再退出。1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2. 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3. 应尽量避免在 where 子句中使用!=或<>操.原创 2021-04-20 22:28:43 · 360 阅读 · 0 评论 -
MySQL创建表出现 Specified key was too long; max key length is 767 bytes
老板说小明啊去搞几张表到数据,小明心说这么简单秒秒钟搞定剩下时间摸鱼。结果:CREATE TABLE oauth_client_token ( token_id VARCHAR(256), token LONGVARBINARY, authentication_id VARCHAR(256) PRIMARY KEY, user_name VARCHAR(256), client_id VARCHAR(256));Specified key was too long; ma原创 2021-04-02 11:08:15 · 1561 阅读 · 0 评论 -
场景+案例分析,SQL优化
SQL优化一般步骤1、通过慢查日志等定位那些执行效率较低的SQL语句2、explain 分析SQL的执行计划需要重点关注type、rows、filtered、extra。type由上至下,效率越来越高 ALL 全表扫描 index 索引全扫描 range 索引范围扫描,常用语<,<=,>=,between,in等操作 ref 使用非唯一索引扫描或唯一索引前缀扫描,返回单条记录,常出现在关联查询中 eq_ref 类似ref,区别在原创 2021-03-30 13:55:35 · 108 阅读 · 0 评论 -
8种常见SQL优化
1、LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10; .原创 2021-02-25 14:43:59 · 345 阅读 · 0 评论 -
MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VAR原创 2021-02-21 09:39:21 · 133 阅读 · 0 评论 -
一个update,误用一个双引号,生产数据全变0了
一、前言最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨。二、过程由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新,于是开发连上了生产数据库,首先执行了第一条SQLupdatetablenamesetsource_name="bj1062-北京市朝阳区常营北辰福第"wheresource_name="-北京市朝阳区常营北辰福第"我们仔...原创 2021-02-18 11:00:22 · 234 阅读 · 0 评论 -
MYSQL-SQL语句性能优化策略以及面试题
本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在WHERE子句中对字段进行NULL值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在WHERE子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=...原创 2021-02-18 10:48:11 · 386 阅读 · 0 评论 -
Mysql 查询以某个字符开头的语句和LIKE的使用
1.SQL语句:-- SELECT * FROM `tb_user` where userName like '小%';-- SELECT * FROM `tb_user` where userName like '%小%';-- SELECT * FROM `tb_user` where userName like '%小';-- SELECT * FROM `tb_user` WHERE userName LIKE '小';-- SELECT * FROM `tb_user` wh原创 2020-12-13 17:54:18 · 7952 阅读 · 0 评论 -
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序sql支持多个字段进行order by排序,各字段之间用逗号”,”隔开。如:SELECT *FROM tablename order by column1,column2,column3 ;如果不显示指出是升序还是降序,则默认为是升序(1)ORDER BY column1,column2; 表示:column1和column2都是升序 (2)ORDER BY column1,column2 DESC; 表示:column1 升.原创 2020-12-10 15:36:46 · 10521 阅读 · 0 评论 -
mysql优化一
有些人觉得自己花了不少精力去学如何做MySQL性能优化,但进展不快,很可能忽视了这点:有了性能分析的技术储备,才能更好掌握性能优化。最近我整理了一套MySQL视频,由浅及深讲了MySQL性能分析 + 性能优化,内容很细,基本覆盖了大家日常工作中经常碰到的一些问题,有必要共享给读者。具体有哪些细节内容?【 MySQL执行计划查看、索引失效分析、加锁分析 】1. 索引优化之组合索引的使用技巧组合索引、最左前缀原则2. explain执行计划重要参数select_type讲解MySQL优化器、子原创 2023-11-18 22:26:52 · 139 阅读 · 0 评论 -
mysql连表查询基本增删改查
#MYSQL的一下基础启动mysql服务net start mysql===================================================CREATE TABLE user_u_s ( id INT(4) ZEROFILL,#属性zerofill长度不够0来补齐 `name` NVARCHAR(20));=====================================================CREATE TABLE user_tb(.原创 2020-12-01 18:11:54 · 583 阅读 · 0 评论 -
mysql存储过程
#MYSQL的存储过程# 创建一个简单的存储过程DELIMITER $$CREATE PROCEDURE seleTeuById()BEGIN SELECT * FROM students WHERE id = 1; END; $$ DELIMITER;# 调用存储过程CALL seleTeuById();#存储过程的变量DELIMITER $$CREATE PROCEDURE stuFinal()BEGIN -- 创建一个变量默认为空''DECLARE stu.原创 2020-12-01 18:10:24 · 181 阅读 · 0 评论 -
MySQL查询当天昨天明天本月上月今年等数据
1.查询当天的数据SELECT * FROM `day_sell` WHERE TO_DAYS(sell_time) = TO_DAYS(NOW())2.查询昨天的数据:SELECT * FROM `day_sell` WHERE TO_DAYS(NOW()) - TO_DAYS(sell_time) <= 13.查询最近7天的(包含7天总计7天)#7天的数据SELECT * FROM `day_sell` WHERE DATE_SUB(CURDATE(),INTE原创 2020-11-21 22:02:34 · 1933 阅读 · 0 评论 -
MySQL中CONCAT() ,CONCAT_WS() ,GROUP_CONCAT()的用法
使用表结构和数据:/*SQLyog Ultimate v12.3.1 (64 bit)MySQL - 5.5.60 : Database - test-day**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQ原创 2020-11-21 20:49:24 · 176 阅读 · 0 评论 -
mysql查询一周一个月一年三个月的数据
SELECT * FROM t_user WHERE TIME>DATE_SUB(CURDATE(), INTERVAL 1 WEEK) 一周SELECT * FROM t_user WHERE TIME>DATE_SUB(CURDATE(), INTERVAL 3 MONTH) 3个月SELECT * FROM t_user WHERE TIME>DATE_SUB(CURDATE(), INTERVAL 1 YEAR) 一年SELEC...原创 2020-11-17 18:15:29 · 314 阅读 · 0 评论 -
mysql结果垂直显示-\g和\G的用法
1.mysql中的\G和\g;2.值得注意的是直接在mysql工具里面执行会被转义成:select*frommemberlimit3G;导致直接报错。3.直接在命令行执行是没有任何问题的如图:(1).\g等价于;号,例如下面两条sql语句的输出结果是一样的:select*frommemberlimit3\g;select*frommemberlimit3;输出结果:+----+-------+|id|name|+----+--...原创 2020-11-15 23:15:56 · 1307 阅读 · 0 评论