MySQL Index
思维导图-索引篇
系列思维导图源文件(数据库+架构)以及思维导图制作软件—XMind8 破解安装,公众号后台回复:“思维导图” 免费领取!(下面的图片不是很清楚,原图非常清晰,另外提供给大家源文件也是为了大家根据自己需要进行修改)
下面是我补充的一些内容
为什么索引能提高查询速度
以下内容整理自: 地址: https://juejin.im/post/5b55b842f265da0f9e589e79 作者 :Java3y
先从 MySQL 的基本存储结构说起MySQL的基本存储结构是页(记录都存在页里边):
各个数据页可以组成一个双向链表
每个数据页中的记录又可以组成一个单向链表- 每个数据页都会为存储在它里边儿的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录
- 以其他列(非主键)作为搜索条件:只能从最小记录开始依次遍历单链表中的每条记录。
所以说,如果我们写select * from user where indexname = ‘xxx’这样没有进行任何优化的s ...
MySQL
Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide
书籍推荐
《高性能MySQL : 第3版》
文字教程推荐
MySQL 教程(菜鸟教程)
MySQL教程(易百教程)
视频教程推荐
基础入门: 与MySQL的零距离接触-慕课网
Mysql开发技巧: MySQL开发技巧(一) MySQL开发技巧(二) MySQL开发技巧(三)
Mysql5.7新特性及相关优化技巧: MySQL5.7版本新特性 性能优化之MySQL优化
MySQL集群(PXC)入门 MyCAT入门及应用
常见问题总结
①存储引擎MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
②字符集及校对规则 字符集指的是一种从二进制编码到某类字符符号的映射。校对规则则是指某种字符集下的排序规则。Mysql中每一种字符集都会对应一系列的校对规则。
Mysql采用的是类似继承的方式指定字符集的默认值,每个数据库以及每张数据表都有自己的默认值,他们逐层继承。比如:某个库中所有表的默认 ...
MySQL安装Can not find error-message file
解决MySQL安装Can not find error-message file一、问题出现场景在进行MySQL安装时进行,进行初始化的时候,能初始化成功,但是提示:Can’t find error-message file
1. 2020-06-14T08:04:42.154214Z 0 [ERROR] [MY-010338] [Server] 2. Can't find error-message file 'D:\Devsoft\mysql-8.0.20-winx64\bin\ oftWare\MySQL\share\errmsg.sys'. 3. Check error-message file location and 'lc-messages-dir' configuration directive.
二、解决方案因为我们在配置MySQL安装目录的时候,没有将安装目录配置到根目录下(就是MySQL解压文件根目录)
错误路径:basedir=”D:\\InstalledDevsoftware\\XX ...
MySQL索引背后的数据结构及算法原理
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。
文章主要内容分为三个部分。
第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。
第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。
第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。
数据结构及算法基础索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。
我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进 ...
MySQL设计三大范式
title: 01-Bootstrap入门publish: false
前言范式即规范。MySQL 范式的作用是:
让我们建的表更佳简洁和高效。
让功能独立化,避免耦合。
MySQL 设计三大范式第一范式(1NF):原子性表的每一列具有原子性,不可再分。
第二范式:唯一性第二范式是建立在第一范式基础上的;外要求所有非主键字段必须完全依赖主键,而不是部分依赖。
第三范式第三范式是建立在第二范式基础上的;且要求没有传递依赖。
参考链接
MySql–数据库设计三范式
Mysql 查看表注释或字段注释 - 云+社区 - 腾讯云
腾讯云
备案控制台
云+社区
专栏
视频
精选
问答
沙龙
云+竞赛
实验室
团队主页
更多
创作
提问
登录注册
专栏首页码客Mysql 查看表注释或字段注释
10
Mysql 查看表注释或字段注释2019-10-22阅读 1.6K0
查看所有表的注释SELECTtable_name 表名,table_comment 表说明FROMinformation_schema.TABLESWHEREtable_schema = '数据库名'ORDER BYtable_name
查询所有表及字段的注释SELECTa.table_name 表名,a.table_comment 表说明,b.COLUMN_NAME 字段名,b.column_comment 字段说明,b.column_type 字段类型,b.column_key 约束FROMinformation_schema. TABLES aLEFT JOIN information_schema. COLUMNS b ON a.table_name = b.TABLE_NAMEWHEREa.table_schema ...
Mysql设置Blob数据类型存储大小
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。
mysql BLOB类型
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。 MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongB ...
mysql中获取当前时间的前一天
mysql获取前一天日期_mysql中获取当前时间的前一天在日志中,经常需要获取当天的或者前一天的数据
当前时间前一天 :SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);
当天:
select * from user where date(log_time) = curdate();
前一天:
如果表示前一天的数据,则不能使用curdate()-1,因为当日期为月初时,curdate()-1 日期就不是上一个月的月末日期。
例如:今天是8月1日,理论上curdate()-1为7月31日,但是curdate()-1得到不是7月31日,而是8月0日。那么统计前一天的日期就不能使用curdate()-1了,mysql数据库又有一个新方法统计前一天的数据
select * from bean where date(log_time) = date_sub(curdate(),interval 1 day);
括号中为当天时间的前一天,如果统计前几天就将括号中的 ‘1’ 改成相应的天数。如果要算月或年,直接将day改为month或year即可
在网上找的使用w ...
事务
title: 01-Bootstrap入门publish: false
事务语句
开启:begin
提交:commit
回滚:rollback
修改root密码
user mysql;更改密码的第二种方法是使用SET PASSWORD语句。您可以使用user@host格式的用户帐户更新密码。如果需要更改其他帐户的密码,则当前登录的帐户至少需要UPDATE权限。以下语句使用SET PASSWORD语句更改dbadmin用户帐户的密码。SET PASSWORD FOR 'dbadmin'@'localhost' = PASSWORD('newpasswd2');SQL请注意,从MySQL 5.7.6版本开始,MySQL不推荐使用此语法,可能会在将来的版本中将其删除。作为一个代替的解决方案,它使用明文密码如下:SET PASSWORD FOR 'dbadmin'@'localhost' = 'newpasswd2';//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/mysql/changing-password.html
数据库中间件详解
数据库中间件详解我们在《“分库分表” ?选型和流程要慎重,否则会失控》这篇文章中,在广度上和流程上总结了数据库中间件的一些特征。而本篇长文,会在深度上解析数据库中间件需要考虑的,一些非常重要的知识点,推荐收藏细读。交叉阅读会获得较好的效果。
我们在《“分库分表” ?选型和流程要慎重,否则会失控》这篇文章中,在广度上和流程上总结了数据库中间件的一些特征。而本篇长文,会在深度上解析数据库中间件需要考虑的,一些非常重要的知识点,推荐收藏细读。如果你正在调研或者使用数据库中间件,交叉阅读会获得较好的效果。
1 数据库拆分过程及挑战互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。
1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用户模块和产品模块的表刚开始都是位于一个库中。其中:user、useraccount表属于用户模块,productcatego ...
查询Mysql正在运行的SQL
SELECT * FROM information_schema.PROCESSLIST WHERE info IS NOT NULL;
nacos单机版启动方式
nacos单机版启动方式nacos单机版启动方式一、下载nacos链接: nacos.官网:官网.
二、解压文件目录结构
三、创建数据库用conf目录下的sql脚本创建数据库,目前官网只支持mysql
四、修改配置文件
4.1 application.properties文件配置数据库打开一下几个配置
`#*************** Spring Boot Related Configurations ***************#### Default web context path:server.servlet.contextPath=/nacos### Default web server port:server.port=8848#*************** Network Related Configurations ***************#### If prefer hostname over ip for Nacos server addresses in cluster.conf:# nacos.inetutils.prefer-hostna ...
Oracle 使用translate 如何去除中文,单行函数 translate 的用法_Jackie 的博客-CSDN博客_oracle去除中文
博客
课程
文库·商城
问答
社区
插件
认证
开源
登录/注册
会员中心
收藏
动态
创作
Oracle 使用translate 如何去除中文,单行函数 translate 的用法
小砖工 2020-03-03 10:32:12 1060 收藏 3
分类专栏: ORACLE 文章标签: oracle
版权
ORACLE 专栏收录该内容
28 篇文章 0 订阅
订阅专栏
单行函数 –> Translate
举例,代码如下:
select translate('成龙ABC9TC', 'AC', '12') test from dual;
结果如下:
剔除所有的数字
代码如下
select translate('成龙B12A2BC9T4C', 'a1234567890', 'a') from dual;
这里的 “a” 必须要有,否则数字会被替换为 “a”
剔除所有字母
代码如下:
1. select translate( ...
Oracle 删除重复数据只留一条
Oracle 删除重复数据只留一条查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
3、查找表中多余的重复记录(多个字段)
select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段), ...