![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
码农的世界,你不懂
这个作者很懒,什么都没留下…
展开
-
SQL优化,索引原则,及mysql不走索引的原因分析
SQL语句优化 1 企业SQL优化思路 1、把一个大的不使用索引的SQL语句按照功能进行拆分 2、长的SQL语句无法使用索引,能不能变成2条短的SQL语句让它分别使用上索引。 3、对SQL语句功能的拆分和修改 4、减少“烂”SQL由运维(DBA)和开发交流(确认),共同确定如何改,最终由DBA执行 5、制定开发流程 2 不适合走索引的场景 1、唯一值少的列上不适合建立索引或者...原创 2020-05-27 09:55:25 · 270 阅读 · 0 评论 -
MySQL忘记密码不要慌,几步轻松解决
1.win+R键调出运行窗口,输入services.msc 2.找到MySQL服务,停止服务 3.打开CMD输入命令:mysqld --skip-grant-tables(开启一个mysql服务,不需要进行认证)【不要关闭这个窗口】 4.再打开一个CMD窗口,输入:mysql -u root -p (不需要输入密码.就可以进入) 5.依次输入命令:show databases;-- 查看所有数据库use mysql; -- 跳转到mysql数据库update user set password=p...原创 2020-05-22 10:11:57 · 147 阅读 · 0 评论 -
MYSQL性能优化的最佳20+条经验
1、为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例:上面两条SQL语句的差别就是CURDATE(),MySQL的查询缓存对这个函数不起作用。所以,像NOW()和RAND()或是原创 2020-05-21 09:32:23 · 118 阅读 · 0 评论 -
mysql性能优化之索引优化
作为免费又高效的数据库,mysql基本是首选。良好的安全连接,自带查询解析、sql语句优化,使用读写锁(细化到行)、事物隔离和多版本并发控制提高并发,完备的事务日志记录,强大的存储引擎提供高效查询(表记录可达百万级),如果是InnoDB,还可在崩溃后进行完整的恢复,优点非常多。即使有这么多优点,仍依赖人去做点优化,看书后写个总结巩固下,有错请指正。 完整的mysql优化需要很深的功底,大公司甚至有专门写mysql内核的,sql优化攻城狮,mysql服务器的优化,各种参数常量设定,查询语句优化,主从复制,转载 2020-05-15 09:58:09 · 100 阅读 · 0 评论 -
MySQL多表&事务课堂笔记
今日内容 1. 多表查询 2. 事务 3. DCL 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id IN...原创 2020-04-22 09:31:13 · 103 阅读 · 0 评论 -
MySQL多表查询几种不同示例
多表查询的概述: 同时查询多张表获取到需要的数据 例如:我们想查询到开发部有多少人,需要将部门表和员工表同时进行查询 多表查询的分类: 内连接查询 显示内连接 隐式内连接 外连接查询 左外连接 右外连接 子查询 ...原创 2020-04-21 09:12:22 · 112 阅读 · 0 评论 -
MySQL的InnoDB和MyISAM的区别
(笔试题)MySQL的InnoDB和MyISAM的区别: 1.在事务上:myisam不支持事务,innodb支持事务。这个也是一个事务失效的原因之一 2myisam使用了表级锁,innodb使用了行级锁 3.mysql5.0后面的版本默认使用innodb引擎,5.0之前都是用myisam引擎 4.InnoDB支持外键,而MyISAM不支持 5.InnoDB不支持全文索引,而MyISAM支持。 6...原创 2020-04-10 09:59:48 · 113 阅读 · 0 评论 -
mysql建立索引的原则
1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。 2.为经常需要排序、分组和联合操作的字段建立索引 经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为...转载 2020-04-09 09:30:48 · 84 阅读 · 0 评论 -
MySQL数据库引擎MyISAM和InnoDB区别
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。 InnoDB...原创 2020-04-09 09:21:45 · 161 阅读 · 0 评论 -
Mysql索引创建原则
在mysql中使用索引的原则有以下几点: 1、 对于查询频率高的字段创建索引; 2、 对排序、分组、联合查询频率高的字段创建索引; 3、 索引的数目不宜太多 原因:a、每创建一个索引都会占用相应的物理控件; b、过多的索引会导致insert、update、delete语句的执行效率降低; 4、若在实际中,需要将多个列设置索引时,可以采用多列索引 如:...原创 2020-04-09 09:11:02 · 86 阅读 · 0 评论 -
Mysql三大范式
数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 什么是三大范式: 第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要 求,否则,将有很...原创 2020-04-09 08:58:29 · 101 阅读 · 0 评论 -
MySQL 高频面试题
前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面试文章,发现其中的一些问题自己也回答不好,虽然知识点大部分都知道,但是无法将知识串联起来. 因此决定搞一个MySQL灵魂100问,试着用回答问题的方式,让自己对知识点的理解更加深入一点. ...原创 2020-04-03 09:43:59 · 197 阅读 · 0 评论 -
Mysql高级查询
高级查询 高级查询的格式: select ... 聚合函数 from 表名 where ... group by ... having ... order by ... limit ... order by 给查询结果排序 语法格式: ...原创 2020-02-18 15:08:42 · 80 阅读 · 0 评论 -
MySQL 之全文索引
最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不多,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录。引入概念通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。你可能会说,用 like + % 就可以实现...原创 2020-02-05 11:20:52 · 142 阅读 · 0 评论 -
Mysql索引的面试题
相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。 但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只...原创 2020-02-04 11:33:43 · 88 阅读 · 0 评论 -
mysql常用函数
字符串: 字符串转数字:cast(字符串as SIGNED) concat(str1,str2,...):把参数连成一个长字符串并返回(任何参数是null时返回null) select concat('my', 's', 'ql'); #mysql locate(substr,str):返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时...转载 2020-01-15 10:42:25 · 85 阅读 · 0 评论 -
mysql 的S 锁和X锁的区别
共享锁和排它锁 MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock) 读锁是共享的,或者说是相互不阻塞的 写锁是排他的,一个写锁会阻塞其他的写锁和读锁 在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据时,mysql会通过锁定阻止其他用户对同一数据的读取共享锁【S锁】 又称读锁,若事...原创 2019-12-19 11:05:37 · 101 阅读 · 0 评论 -
mysql 锁、数据库优化
1.锁 1.1锁分类 按操作分 读锁(共享锁) 写锁(排他锁) 按粒度分 表锁 行锁 页锁 2.2表锁 偏向MyISAM存储引擎,开销小, 加锁快, 无死锁,锁定粒度大, 发生锁冲突的概率最高, 并发最底,整张表就只能一个人使用 查看表锁show open tables; ...原创 2019-12-17 11:11:47 · 93 阅读 · 0 评论 -
数据库优化
1.MySQL优化综合性技术 表的设计合理化(符合3NF,有时也要进行反三范式操作) 添加适当索引 分表技术(水平分割、垂直分割) 主从复制,读写分离 存储过程(模块化编程,可以提高速度) 对MySQL配置优化(配置最大并发数my.ini,调整缓存大小) 系统应用优化等 服务器的硬件优化 2、索引分类 单值索引 一个索引只包含单个列,一个表可以有多个单值索引,一般来说...原创 2019-12-17 11:07:59 · 69 阅读 · 0 评论 -
分布式数据库集群
Mysql cluster是适用于分布式计算环境的高可用、高冗余版本的mysql,其技术在分布式系统中为mysql数据提供了冗余特性,增强了安全性,使得单个mysql服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。Mysql cluster采用shared-nothing(无共享)架构,主要利用了NDB存储引擎来实现,NDB存储引擎是一个内存式存储引擎,要求数据必须全部加载到内存之中...原创 2019-12-11 11:07:29 · 84 阅读 · 0 评论 -
Pandas操作mysql数据库
公司中有时候我们的需求是操作mysql数据库中的数据,如果我们能用pandas直接操作mysql的话,就比较方便了因此在这里给大家分享一下,pandas对mysql数据库的读写操作: pandas读取mysql数据库: [Python]纯文本查看复制代码 ? 01 02 03 04 05 06 07 08 09...原创 2019-12-10 11:11:15 · 374 阅读 · 0 评论 -
数据库介绍、mysql、sql、DDL-数据定义语言)
数据库和数据库管理系统数据库介绍 1数据库(Database:DB):按照一定的数据结构存储和管理数据的仓库 2.数据模型结构:层次模型、网状模型、关系模型 3.关系模型:将复杂的关系以简单的二元形式表示。以行和列的形式进行表示(表格)。行叫记录,列叫字段 4.数据分类: 结构化数据:可以通过统一的结构来进行描述的管理。 非结构化数据:通过同一的方式进行描述 半结构化数据:位于...原创 2019-12-02 14:36:45 · 118 阅读 · 0 评论 -
MySQL进阶(一)SQL基础练习
本文适合哪些人群 致力于将SQL作为自己的技术特长的人 想在日常工作中和面试中突出自己SQL能力的人 SQL建表语句 CREATE TABLE STUDENT ( SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIM...原创 2019-11-27 15:40:26 · 160 阅读 · 0 评论 -
Mysql的binlog日志详解
mysql5.7默认是不开启binlog日志的,具体的开启方式在开启的笔记中查看。 binlog开启成功之后,binlog文件的位置可以在my.inf配置文件中查看。也可以在mysql的命令行中查看。命令行查看代码如下 show variables like '%log_bin%'; 我们也可以看一下当前mysql的binlog的情况 show master status 每当我们重启一次,会自动...原创 2019-11-21 14:48:04 · 86 阅读 · 0 评论 -
有Mysql数据库的情况下为什么要用Hive数据库?
有Mysql数据库的情况下为什么要用Hive? 最近接到公司的一个需求,要求使用Hive做数据查询。当时第一反应就是What?Hive是什么鬼?一脸懵逼状。(请原谅一个刚开始实习的Java实习生见识短浅)然后发现了hive的一些问题。下面简单介绍一下Hive。 网上对于hive与mysql的区别的文章也不是很多。so只能问问公司大牛们,看看他们是怎样理解的。 由于 Hive 采用了 SQL ...原创 2019-11-20 10:41:12 · 350 阅读 · 0 评论 -
Mysql的优化技术
MySQL的优化技术mysql三范式1. 第一范式 确保数据表中每列(字段)的原子性。 如果数据表中每个字段都是不可再分的最小数据单元,则满足第一范式。 例如:user用户表,包含字段id,username,password 2. 第二范式 在第一范式的基础上更进一步,目标是确保表中的每列都和主键相关。 如果一个关系满足第一范式,并且除了主键之外的其他列,都依赖于该主键,则满足第二范式...原创 2019-11-19 15:45:21 · 114 阅读 · 0 评论