
数据库知识
文章平均质量分 83
数据库相关知识
严严严的博客
做一些技术备案,方便学习
展开
-
MySQL主从架构、读写分离、集群相关面试问题
文章目录一、MySQL主从同步原理二、MySQL主从集群面试相关问题1、全库同步与部分同步2、GTID同步集群3、集群扩容与MySQL数据迁移4、理解半同步复制5、主从集群与读写分离6、扩展更复杂的集群结构一、MySQL主从同步原理既然要解决MySQL数据库的分布式集群化问题,那就不能不先了解MySQL自身提供的主从同步原理。这是构建MySQL集群的基础,也是后续进行分库分表的基础,更是MySQL进行生产环境部署的基础。其实数据库的主从同步,就是为了要保证多个数据库之间的数据保持一致。如果要保证数据能原创 2022-05-19 19:53:07 · 15277 阅读 · 0 评论 -
Mysql三:一条SQL在MySQL中是如何执行的
文章目录一条SQL在MySQL中是如何执行的1、连接器2、查询缓存3、分析器4、优化器5、执行器6、bin-log归档一条SQL在MySQL中是如何执行的大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数 (如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架原创 2022-04-25 14:01:31 · 12336 阅读 · 0 评论 -
Mysql sql语句基本常规操作!
文章目录一、数据定义语言基础DDL(Data Definition Language)(一)alter一、数据定义语言基础DDL(Data Definition Language)(一)alter字段修改1)添加字段语法:alter table 表名 add 字段名 类型alter table corp add platform_id BIGINT(20) DEFAULT NULL...原创 2020-04-17 10:27:00 · 378 阅读 · 0 评论 -
Sql分页查询
1:mysql的分页查询/** sql:可以是单表的查询语句,也可以是多表的联合查询语句* firstIndex:其实的索引* pageSize:每页显示的记录数*/select o.* from (sql) o limit firstIndex,pageSize比如: 查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是转载 2017-06-08 11:22:41 · 1316 阅读 · 0 评论 -
JDBC封装工具类
1、接口package com.database.db;import java.sql.Connection;import java.sql.SQLException;public interface IBONDataSource { public Connection getConnection() throws SQLException;}2、实现类p...原创 2018-03-16 11:06:19 · 187 阅读 · 0 评论 -
JDBC中的Statement和PreparedStatement的区别
应该尽可能以PreparedStatement代替Statement:(1)代码的可读性和可维护性;(2)PreparedStatement尽最大可能提高性能;(3)极大的提高了安全性。转载 2017-05-05 15:38:54 · 8749 阅读 · 0 评论 -
jdbc连接(查询)数据库方法及存在的问题
首先,说下单独使用jdbc查询数据库中的数据方法:加载数据库驱动创建并获取数据库链接创建jdbc statement对象设置sql语句设置sql语句中的参数(使用preparedStatement)通过statement执行sql并获取结果对sql执行结果进行解析处理释放资源(resultSet、preparedstatement、connection)以上几个步骤时通常...转载 2017-05-05 15:08:41 · 821 阅读 · 0 评论 -
Mysql专题八:Mysql 锁
文章目录一、读锁与写锁(一)读操作(二)写操作二、行锁与表锁(一)行锁READ COMMITTED级别下REPEATABLE READ级别下(二)表锁(三)、悲观锁和乐观锁(四)死锁一、读锁与写锁• 读锁:共享锁、Shared Locks、S锁。• 写锁:排他锁、Exclusive Locks、X锁。• select :不加锁(一)读操作对于普通 SELECT 语句,InnoDB 不...原创 2020-01-17 16:48:57 · 820 阅读 · 0 评论 -
Mysql专题七:Mysql事务
文章目录一、事务的ACID原则二、事务的使用三、隔离性详解一、事务的ACID原则事务的概念:我们把需要保证原子性、隔离性、一致性和持久性的一个或多个数据库操作称之为一个事务。场景:小明向小强转账10元原子性(Atomicity)转账操作是一个不可分割的操作,要么转失败,要么转成功,不能存在中间的状态,也就是转了一半的这种情况。我们把这种要么全做,要么全不做的规则称之为原子性。隔离性...原创 2020-01-17 16:19:48 · 568 阅读 · 0 评论 -
Mysql专题六:Mysql常见的优化手段和Explain关键字
explain select * from t1 join t2;一、性能按type排序system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL二、性能按Ext...原创 2020-01-17 11:04:29 · 1152 阅读 · 0 评论 -
Mysql专题五:关于JOIN的优化和子查询的优化
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。文章目录一、语法二、连接的原理(一) 嵌套循环连接(Nested-Loop Join)(二)基于块的嵌套循环连接(Block Nested-Loop Join)三、外连接消除四、关于子查询的优化(一)按返回的结果集区分子查询(二)按与外层查询...原创 2020-01-17 10:31:24 · 2771 阅读 · 0 评论 -
Mysql专题三:B+树索引实战
一、索引的代价1、空间上的代价一个索引都为对应一棵B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的。2、时间上的代价索引是对数据的排序,那么当对表中的数据进行增、删、改操作时,都需要去维护修改内容涉及到的B+树索引。所以在进行增、删、改操作时可能需要额外的时间进行一些记录移动,页面分裂、页面回收等操作来维护好排序。二、B+树索引实...原创 2020-01-16 15:49:35 · 9059 阅读 · 0 评论 -
Mysql专题四:查询优化器工作原理
对于一个SQL语句,查询优化器先看是不是能转换成JOIN,再将JOIN进行优化优化分为:1. 条件优化,2.计算全表扫描成本,3. 找出所有能用到的索引,4. 针对每个索引计算不同的访问方式的成本,5. 选出成本最小的索引以及访问方式一、开启查询优化器日志-- 开启set optimizer_trace="enabled=on"; -- 执行sql-- 查看日志信息select * ...原创 2020-01-16 16:49:32 · 1592 阅读 · 1 评论 -
Mysql二:深入理解mysql索引原理
一、索引的产生INNODB插入时会根据主键排序,而MyISAM是根据你插入的顺序来排序的;CREATE TABLE t1(a int PRIMARY KEY,b INT,c INT,d INT,e VARCHAR(20)) ENGINE = INNODB;INSERT into t1 VALUES(4,3,1,1,'d');INSERT into t1 VALUES(1,1,...原创 2020-01-16 15:03:57 · 32254 阅读 · 0 评论 -
Mysql一:InnoDb行格式、数据页结构
一、局部性原理存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB、MyISAM、Memory等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如Memory都不用磁盘来存储数据。在InnoDB中,数据会存储到磁盘上,在真正处理数据时需要先将数据加载到内存,表中读取某些记录时,InnoDB存储引擎不需要一条一条的把记录从磁盘上读出来,InnoDB采...原创 2020-01-16 10:19:59 · 17482 阅读 · 0 评论 -
Docker安装mysql及mysql数据库的导入与导出
Docker中mysql数据库的导入与导出 与 直接对Linux中的mysql操作一样,只不过前者需要进入docker容器进行操作。1、查看容器docker ps2、首先进入你的mysql容器中docker exec -it mymysql /bin/bash3、进行mysql存放数据的文件夹whereis mysql我的mysql data存放位置为/var/lib/mysq...原创 2019-10-16 17:38:53 · 3076 阅读 · 0 评论 -
Ubuntu 16.04安装phpMyAdmin数据库管理工具
安装LAMPLAMP是Linux、Apache、MySql(MariaDB)、PHP(Python、Perl)等软件的合称。我们现在要在Ubuntu16.04上安装,因此只需要安装其他三个软件就可以了。sudo apt install mysql-server-5.7 mysql-client-5.7 php7.0 apache2 对于这些软件可能还需要各自进行配置,这里就不再细述了。 1、配置原创 2018-03-15 11:41:58 · 527 阅读 · 0 评论 -
Ubuntu下安装MySQL及简单操作
1、更新包信息sudo apt-get update2、安装MySQL sudo apt-get install mysql-server sudo apt-get install mysql-client3、验证Mysql安装安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:sudo netstat -tap...原创 2018-03-14 11:41:06 · 735 阅读 · 2 评论 -
查询mysql数据库占用空间大小
当数据库使用一段时候后,想知道数据库数据占用大小;方式一:1、进入数据库:mysql -u root -p2、查看表格:show databases;3、查看占用磁盘大小 1)查看占多少字节select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where tab...原创 2018-03-21 11:05:17 · 13735 阅读 · 2 评论 -
Mysql专题三:B+树索引实战
1、like是以%开头的查询语句在使用LIKE关键字进行查询的语句中,如果匹配字符串的第一个字符为“%”,索引不会起作用。只有“%”不再第一个位置,索引才会起作用。 举例:已知name字段上有索引websites_index。第1个查询语句执行后,rows为5,表示扫描了表中所有的4条数据;第2个查询语句3执行后,rows为1,表示只扫描了1条纪录;第一个查询语句索引没有起到作用...原创 2018-03-21 16:18:37 · 12165 阅读 · 2 评论 -
mysql mysqldump导出与导入sql文件
一、mysqldump备份数据库语句的基本语法格式如下:sudo mysqldump -u user -h host -ppassword dbname [tbname,[tbname....]]> filename.sqluser:用户名称;host:登录数据库的主机名称;password:登陆密码;dbname:需要备份的数据库名称;tbname:dbname数据库中需要...原创 2019-09-06 13:00:40 · 1611 阅读 · 0 评论 -
MySQL创建用户与授权
一. 创建用户命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username:你将创建的用户名host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码...原创 2019-09-06 13:24:51 · 267 阅读 · 0 评论 -
mysql允许远程链接,开放3306端口
一、开放3306端口1、首先查看端口是否打开 netstat -an|grep 3306此图为开启3306端口的截图;2、打开mysql配置文件将bind-address = 127.0.0.1注销sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf3、重启动ubuntusudo reboot4、再次查看端口是否打开 ...原创 2018-03-15 10:06:51 · 40400 阅读 · 3 评论