mysql
文章平均质量分 82
liu1002880404
这个作者很懒,什么都没留下…
展开
-
MySQL case when ,if 函数用法
case when… then… else… end:CASE 字段 WHEN 预期值 THEN 结果1 ELSE 结果2 ENDscore 表:mysql> select * from score;+----+----------+------+------+-------+| id | name | sex | age | score |+----+----------+------+------+-------+| 1 | zhangsan | 1 | 19原创 2022-05-19 21:07:04 · 1662 阅读 · 0 评论 -
mysql数据库最全实用语句
数据库的基本概念数据库的英文单词: DataBase 简称 : DB什么数据库?用于存储和管理数据的仓库。数据库的特点:持久化存储数据的。其实数据库就是一个文件系统方便存储和管理数据使用了统一的方式操作数据库 – SQL4. 常见的数据库软件 * 参见《MySQL基础.pdf》MySQL数据库软件1. 安装 * 参见《MySQL基础.pdf》2. 卸载 1. 去mysql的安装目录找到my.ini文件 * 复制 datadir="C:/P..原创 2020-08-18 15:33:09 · 919 阅读 · 0 评论 -
MySQL 的存储引擎
MyISAM 和 InnoDB 存储引擎虽然索引结构都是 B+Tree,但实现上还是有些差别MyISAMMyISAM 引擎使用 B+Tree 作为索引结构,叶节点的 data 域存放的是数据记录的地址。MyISAM 的索引文件仅仅保存数据记录的地址。在 MyISAM 中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求 key 是唯一的,而辅助索引的 key 可以重复。MyISAM 中索引检索的算法为首先按照 B+Tree 搜索算法搜索索引,如果指定的 Key 存在原创 2022-04-01 16:36:41 · 79 阅读 · 0 评论 -
MySQL索引数据结构
前言MySQL中表里面的数据越来越大的时候,查询数据就会变慢,为了解决查询变慢的问题常用的办法是在表上建索引,然后根据索引查询数据就会更快。MySQL中,用的最多的是InnoDB存储引擎,InnoDB中的索引采用B+Tree这种数据结构。B+Tree 索引是 B+Tree 在数据库的一种实现。B+Tree 中的B代表平衡(balance),而不是二叉(binary),因为 B+Tree 是从 “平衡二叉树” 再经过 “B树(B-Tree)” 一步步演化而来的。其实最终选用 B+树 是经历了漫长的演化:原创 2022-04-01 16:14:54 · 1324 阅读 · 0 评论 -
mysql索引归纳
分类聚集索引sql数据库是行数据库,数据是一行一行存储的,而聚集索引是个特殊的索引,相当于这一行行记录的物理编号,描述这一行行数据的物理存储顺序。所以,一张表只会有一个聚集索引。聚集索引的叶子节点指向的就是实际数据页拿mysql来说,聚集索引通常是表的主键,若无主键则为表中第一个非空的唯一索引,还是没有就采用innodb存储引擎为每行数据内置的ROWID作为聚集索引。聚集索引与非聚集索引区别聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个聚集索引存储记录是物理上连续存在,而非聚集索引是原创 2022-03-31 22:45:46 · 912 阅读 · 0 评论 -
count(*)、count(主键 id)、count(字段) 和 count(1) 等不同用法的性能差别
count(主键 id):InnoDB 引擎会遍历整张表,把每一行的 id 值都取出来,返回给 server 层。server 层拿到 id 后,判断是不为空的,就按行累加count(1):InnoDB 引擎遍历整张表,但不取值。server 层对于返回的每一行,放一个数字“1”进去,判断是不为空的,按行累加count(字段):如果这个 “字段” 是定义为 not null 的话,一行行地从记录里面读出这个字段,判断不能为 null,按行累加如果这个 “字段” 定义允许为 null,那么执行的时候,原创 2022-03-23 14:18:03 · 298 阅读 · 0 评论 -
mysql面试题
MyISAM与InnoDB区别InnoDB聚簇索引,MyISAM非聚簇索引InnoDB数据与索引一起保存.ibd,MyISAM表结构.frm 索引.myi 数据.mydInnoDB支持事务、外键、行锁表锁,MyISAM不支持事务、外键、只支持表锁select count(*)MyISAM查询更优,InnoDB更新更优都是B+tree索引MyISAM支持全文索引,InnoDB5.6后支持MyISAM:不支持事务,但是每次查询都是原子的支持表级锁,每次操作对整个表加锁存储表的总行数一个M原创 2022-03-14 12:07:18 · 696 阅读 · 0 评论 -
MySQL中的日志
文章目录错误日志查询日志慢查询日志二进制日志(binlog)InnoDB 存储引擎的日志redo log 又称为重做日志,用来保证事务的持久性,undo log 用来保证事务的原子性和 MVCC。回滚日志(undo log)错误日志错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。查询日志查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的原创 2022-03-13 14:58:41 · 2534 阅读 · 1 评论 -
由where 1=1引出来几点思考
什么时候用到where 1=1动态构建SQL语句。如果要问在SQL语句的where条件中多加1=1目的是什么,很简单:使得where条件语句永远为真。本质上就是虽然加了where条件,但实际上永远为真,也就相当于没有加任何约束条件。那为什么还要加这个条件呢?举例说明一下String sql = "select * from t_user where 1=1 "; if(!b.equals("")){ sql += "and b='"+b+"'";} 在上述语句拼写时,使用wh原创 2022-03-13 14:38:10 · 2988 阅读 · 2 评论 -
数据库中使用Like模糊查询太慢
问题:明明建立了索引,为何Like模糊查询速度还是特别慢?Like是否使用索引? 1、like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。 2、like keyword% 索引有效。 3、like %keyword% 索引失效,也无法使用反向索引。可通过explain select * from company_info where cname like ‘%小%’explain selec原创 2022-02-15 13:33:08 · 1955 阅读 · 0 评论 -
SQL语句在MySQL中是如何执行的
当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?架构概况大体上来说,MySQL 可以分为 Server 层与存储引擎两个部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器。存储引擎负责数据的存储和读取,其架构模式是插件式的,支持支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL5.5.5 版本开始成为了默认存储引擎。所以不难看出,主要差别在于 Server 层,也就是连接器到执行器部分。接下来原创 2021-10-27 08:34:09 · 391 阅读 · 0 评论 -
win10 上面安装 MySQL8
win10 上面安装 MySQL8win10 上面安装 MySQL81.官网下载 MySQL Community Downloadshttps://dev.mysql.com/downloads/mysql/2.解压到你要安装的目录3.在MySQL的根目录下面新建my.ini的配置文件[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录(需要设置为自己的安装目录)basedir=D:\mysqlData\mysql-8.0.25-winx64# 设置my原创 2021-07-14 17:52:00 · 268 阅读 · 1 评论 -
mycat 分库分表
文章目录分库分表为什么要分库分表?分库数据库准备配置mycat分表分表实现(取模)Mycat 的分片 join分库分表分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。分表:从单张表拆分成多张表的过程,将数据散落在多张表内。为什么要分库分表?关键字:提升性能、增加可用性。从性能上看随着单库中的数据量越来越大、数据库的查询QPS越来越高,相应的,对数据库的读写所需要的时间也越来越多。数据库的读写性能可能会成为业务发展的瓶颈。对应的,就需要做数据库性能方面的优化。本文中我们只讨论原创 2021-07-12 13:20:21 · 406 阅读 · 0 评论 -
Mycat实战 mysql双主双从复制集群搭建
#[toc]数据库准备使用docker安装两个数据库创建数据库配置文件1、在root目录下创建db1和db2文件夹,然后再在这两个目录下分别创建my.cnf文件mkdir db1mkdir db1touch my.cnf2、Master(db1目录下的my.cnf)配置文件如下:[mysqld]## 同一局域网内注意要唯一server-id=100 ## 开启二进制日志功能,可以随便取(关键)log-bin=mysql-bin3、Slave(db2目录下的my.cnf)配置原创 2021-07-12 11:13:52 · 359 阅读 · 2 评论 -
Sql优化总结!
文章目录Sql执行顺序基础Sql优化查询SQL尽量不要使用select *,而是具体字段理由:避免在where子句中使用or来连接条件理由:使用varchar代替char尽量使用数值替代字符串类型查询尽量避免返回大量数据使用explain分析你SQL执行计划是否使用了索引及其扫描类型性能排行:possible_keys:key:优化like语句:字符串怪现象理由:索引不宜太多,一般5个以内索引不适合建在有大量重复数据的字段上where限定查询的数据理由:避免在where中对字段进行表达式操作避免在where原创 2021-07-03 21:12:52 · 263 阅读 · 3 评论 -
MyBatis 互联网面试题
MyBatis 面试题 1、什么是 Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及转载 2020-09-19 13:33:43 · 3212 阅读 · 0 评论 -
mycat详细介绍及实战
Mycat 概述 Mycat 是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL 协议的的Server,前端用户可以把它看作是一个数据库代理,用MySQL 客户端工具和命令行访问,而其后端可以用MySQL 原生(Native)协议与多个MySQL 服务器通信,也可以用JDBC 协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N 个小表,存储在后端MySQL 服务器里或者其他数据库里。Mycat 发展到目前的版本,已经不是一个单纯的.原创 2020-08-08 23:44:01 · 5552 阅读 · 1 评论 -
Mysql+Keepalived实现双主高可用 分库分表
Mysql+Keepalived实现双主高可用什么是Keepalived?Keepalived是一个工作在IP/TCP协议栈的IP层,TCP层及应用层实现交换机制的软件。Keepalived的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。原创 2020-08-08 23:25:18 · 651 阅读 · 0 评论 -
MYSQL安装及架构 主从异步复制 程序实现读写分离原理
环境准备CentOS-7 安装好,最好是Minimal版本的新建soft目录,上传mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz配置好网络依赖安装Mysql 编译安装需要使用perl,先把这些编译工具安装好yum -y install perlyum -y install perl-develyum -y install 'perl(Data::Dumper)'安装mysql 解压 tar -zxvf mysql-...原创 2020-08-08 23:08:54 · 218 阅读 · 0 评论 -
mysql面试题最全
常见问题总结什么是MySQL?MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。存储...原创 2020-04-04 22:01:38 · 265 阅读 · 0 评论 -
mysql索引实现原理分析
为什么要使用索引?通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快 数据的检索速度(大大减少的检索的数据量), 这也是创建索引的最主要的原因。帮助服务器避免排序和临时表。将随机IO变为顺序IO可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。索引这么多优点,为什么不对表中的每一个列创建一个索引呢?当对表中的数据进行增加、删除和修改的时...原创 2020-04-04 21:52:59 · 1170 阅读 · 0 评论