数据库

  • 简述数据库设计的基本原则

    简述数据库设计的基本原则

    数据库设计的基本原则:1、把具有同一个主题的数据存储在一个数据表中;2、尽量消除冗余,提高访问数据库的速度;3、设计数据表结构时,应考虑表结构的动态适应性。数据库设计的基本原则:(1)把具有同一个主题的数据存储在一个数据表中,“一表一用”。(2)尽量消除冗余,提高访问数据库的速度。(3)一般要求数据库设计达到第三范式,多对多,最大限度消除了数据冗余、修改异常、插入异常、删除异常,基本满足关系规范化的要求。(4)关系数据库中,各个数据表之间关系只能为一对一和一对多的关系。对于多对多的关系必须转换为一对多的关...
  • 详解mysql DML语句的使用

    前言: 在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了。本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作。这里说明下DDL与DML语句的分类,可能有的同学还不太清楚。DDL(Data Definition Language):数据定义语言,用于创建、删除、修改、库或表结构,对数据库或表的结构操作。常见的有create,alter,drop等。DML(Data Manipulation Language):数据操纵语言,主要对表记录进行更新(增、删、改)。常见的有inse...
  • 深入了解mysql长事务

    前言: 本篇文章主要介绍MySQL长事务相关内容,比如说我们开启的一个事务,一直没提交或回滚会怎样呢,出现事务等待情况应该如何处理,本篇文章将给你答案。注意:本篇文章并不聚焦于谈论事务隔离级别以及相关特性。而是介绍长事务相关危害以及监控处理方法。本文是基于MySQL5.7.23版本,不可重复读(RR)隔离级别所做实验。(语句为\G可以使查询结构显示更易读,但只可以在mysql命令行使用。)1.什么是长事务首先我们先要知道什么是长事务,顾名思义就是运行时间比较长,长时间未提交的事务,也可以称之为大事务。这...
  • php mysqli用法介绍

    php mysqli用法介绍

    php mysqli用法:1、通过mysqli建立到mysql的连接,并打开指定数据库;2、通过mysqli设置默认客户端的编码方式;2、使用mysqli query语句执行SQL查询。以上就是php mysqli用法介绍的详细内容,更多请关注随便开发网其它相关文章!...
  • SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解

    SQL Server中的集合运算包括UNION(合并),EXCEPT(差集)和INTERSECT(相交)三种。集合运算的基本使用1.UNION(合并两个查询结果集,隐式DINSTINCT,删除重复行)--合并两个提取表/派生表(derived table), 返回结果为:[a,b,c,d,e]SELECT FC FROM (VALUES('a'),('b'),('c'),('e')) Table1 (FC)UNIONSELECT FC FROM (VALUES('a'),('b')...
  • MySQL 常用函数总结

    前言: MySQL数据库中提供了很丰富的函数,比如我们常用的聚合函数,日期及字符串处理函数等。SELECT语句及其条件表达式都可以使用这些函数,函数可以帮助用户更加方便的处理表中的数据,使MySQL数据库的功能更加强大。本篇文章主要为大家介绍几类常用函数的用法。1.聚合函数聚合函数是平时比较常用的一类函数,这里列举如下: COUNT(col) 统计查询结果的行数 MIN(col) 查询指定列的最小值 MAX(col) 查询指定列的最大值 SUM(col) 求和,返回指定列的总和 AVG(col)...
  • mysql 时间戳的用法

    前言: 时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇文章主要介绍timestamp字段的使用方法及相关参数,希望大家读完能对timestamp有更深的认识。1.TIMESTAMP字段类型简介timestamp字段类型可存储时间类型数据,timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999',timestamp...
  • 图书管理系统的sqlserver数据库设计示例

    图书管理系统的sqlserver数据库设计示例

    首先,在写数据库时需要遵循以下几个原则: 数据库的命名规范: 方便代码的交流和维护 不影响代码的效率,不与大众习惯冲突 使代码更美观,阅读更方便 使代码的逻辑更清晰,更易于理解 术语的定义: Pascal方法:将标识符的首字母和后面连接的每个单词的首字母都大写 ,可以对三字母或更多的字符的标识符使用。例如:BackColor Camel方法:标识符的首字母小写,而后面连接的单词首字母都大写。例如:backColor 基本原则: 以大小写敏感编写SQL语句 尽量使用Unicode数据类型 优先使用参数化SQ...
  • 详细分析mysql MDL元数据锁

    前言:当你在MySQL中执行一条SQL时,语句并没有在你预期的时间内执行完成,这时候我们通常会登陆到MySQL数据库上查看是不是出了什么问题,通常会使用的一个命令就是 show processlist,看看有哪些session,这些session在做什么事情。当你看到 waiting for table metadata lock 时,那就是遇到MDL元数据锁了。本篇文章将会介绍MDL锁的产生与排查过程。1.什么是MDL锁MDL全称为metadata lock,即元数据锁。MDL锁主要作用是维护表元数据的...
  • 可以加快查询操作的属性是什么

    可以加快查询操作的属性是什么

    可以加快查询操作的属性是“索引”,利用索引可以加快对数据的查询和排序速度,索引文件作为一个独立的文件进行存储,文件中包含指向表记录的指针,建立索引后,表中记录的物理顺序不变。可以加快查询操作的属性是“索引”。利用索引可以加快对数据的查询和排序速度,索引文件作为一个独立的文件进行存储,文件中包含指向表记录的指针,建立索引后,表中记录的物理顺序不变。相关介绍:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值...
  • 压力测试工具Apache Bench实现原理及用法解析

    压力测试工具Apache Bench实现原理及用法解析

    1:吞吐率(Requests per second)服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。记住:吞吐率是基于并发用户数的。这句话代表了两个含义,1:吞吐率和并发用户数相关;2:不同的并发用户数下,吞吐率一般是不同的。计算公式:总请求数 / 处理完成这些请求数所花费的时间,即Request per second = Complete requests / Time taken for t...
  • 浅谈入门级oracle数据库数据导入导出步骤

    浅谈入门级oracle数据库数据导入导出步骤

    oracle数据库数据导入导出步骤(入门)说明:1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问题,同时效率更高,但特别注意:采用命令时要注意所使用的用户及其权限等细节。3.在目标数据库导入时需要创建与导出时相同的用户名(尽量一致),并赋予不低于导出时用户的权限;同时还需创建与原数据库相同的表空间名,若本地数据库已存在相同的表空间,则只能进行表空间扩充。一、导入前准...
  • 数据库死锁产生的原因及解决方案

    数据库死锁产生的原因及解决方案

    数据库死锁产生的原因及解决方案:1、程序的BUG产生,需要调整的程序的逻辑;2、页面的按钮没有立即生效,需要使用乐观锁、悲观锁进行控制;3、执行多个不满足条件的update语句;需要对语句进行分析,建立相应的索引进行优化。数据库死锁产生的原因及解决方案:在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁...
  • MySql如何实现远程登录MySql数据库过程解析

    MySql如何实现远程登录MySql数据库过程解析

    导读:有时候,为了开发项目,我们需要在一台服务器上部署MySql数据库服务器,然后使用本地电脑远程访问和管理MySql数据库,那么如何实现MySql的远程登录呢?1.使用命令行远程登录MySql数据库首先你需要在远程数据库上创建一个用户(不建议使用root用户),并给该用户授予可以远程登录的权限,可以参考我的另一套教程《MySql全套攻略——添加新用户、为用户创建数据库和给用户分配权限》,博客地址为点击打开链接。这里需要注意,如果是在Ubuntu上部署MySql服务器,需要修改其配置文件my.cnf中的参...
  • MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍

    1.添加新用户只允许本地IP访问create user 'test'@'localhost' identified by '123456';允许外网IP访问create user 'test'@'%' identified by '123456';刷新授权flush privileges;2.为用户创建数据库create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 3.为用户分配权限授予用户通过外网IP操作...
  • MySQL数据库高级查询和多表查询

    MySQL数据库高级查询和多表查询

    MySQL多表查询添加练习表-- 用户表(user)CREATE TABLE `user`(`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id(主键)',`username` VARCHAR(50) COMMENT '用户姓名', `age` CHAR(3) COMMENT '用户年龄');-- 订单表(orders)CREATE TABLE `orders`(`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT...
  • MySQL使用聚合函数进行单表查询

    MySQL使用聚合函数进行单表查询

    聚合函数作用于一组数据,对那组数据返回一个值 count :统计结果记录多少条数, max:统计最大值 min:统计最小值 sum:计算求和 avg: 计算平均值注意,分组函数 group by。如果要对 分组后 的数据进行筛选,那么必须使用 having 关键字,条件写在 having 后面; where:先过滤已有的数据,在分组,在聚合函数计算; having:过滤分组之后的数据。插入我们需要练习的表city 表CREATE TABLE `city` (`id` INT AUTO_INC...
  • MySQL 详细单表增删改查crud语句

    MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句1.创建练习表 这里练习表没有满足三范式第一范式(又称 1NF):保证每列的原子性数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。第二范式(又称 2NF):保证一张表只描述一件事情满足1NF后要求表中的所有列,每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。第三范式(又称 3NF):保证每列都和主键直接相关满足2...
  • Redis 执行性能测试

    Redis 性能测试是通过同时执行多个命令实现的。语法redis 性能测试的基本命令如下:redis-benchmark [option] [option value]注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。实例以下实例同时执行 10000 个请求来检测性能:$ redis-benchmark -n 10000 -qPING_INLINE: 141043.72 requests per secondPING_BULK: 142857.14 requests pe...
  • Mysql之组合索引方法详解

    Mysql之组合索引方法详解

    对于任何DBMS,索引都是进行优化的最主要的因素。对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降。如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。例如:假设存在组合索引(c1,c2),查询语句select * from t1 where c1=1 and c2=2能够使用该索引。查询语句select * from t1 where c1=1也能够使用该索引。但是,查询语句select * from t1 where c...
  • MySql COALESCE函数使用方法代码案例

    MySql COALESCE函数使用方法代码案例

    COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。应用举例:SELECT COALESCE (1, 2, 3, 4) as numberSELECT COALESCE (NULL, 2, 3, 4) as numberSELECT COALESCE (NULL, NULL,...
  • Redis缓存常用4种策略原理详解

    Redis缓存常用4种策略原理详解

    我们都知道,提高系统性能的最简单也最流行的方法之一其实就是使用缓存。我们引入缓存,相当于对数据进行了复制。每当系统数据更新时,保持缓存和数据源(如 MySQL 数据库)同步至关重要,当然,这也取决于系统本身的要求,看系统是否允许一定的数据延迟。最常见的几种缓存策略、它们的优缺点以及使用场景,分别是: Cache-Aside Read-Through Write-Through Write-BehindCache-Aside 策略Cache-Aside可能是最常用的缓存策略。在这种策略下,应用程序(...
  • Redis服务之高可用组件sentinel详解

    Redis服务之高可用组件sentinel详解

    前文我们了解了redis的常用数据类型相关命令的使用和说明,回顾请参考今天我们来聊一下redis的高可用组件sentinel;首先来回顾下redis的主从同步,主从同步最主要的作用是让master的数据在其他服务器上实时存在副本,起到了备份的效果;对于redis的读写来说,主从架构能够让读的请求分散到多个从服务器上,从而降低了单台redis读请求的io压力,同时也提高了redis读请求的并发能力;通常为了数据的一致性,从服务器一...
  • The MySQL server is running with the --read-only option so it cannot execute this statement

    The MySQL server is running with the --read-only option so it cannot execute this statement

    正在开会,同事电话反映开发库不能写入了,错误信息如下:1209 - The MySQL server is running with the--read-only option so it cannot execute this statement一般这个错误有两种原因:1.连到从库了。从库一般设置为只读。2.主库的read_only参数被修改为1开发人员是普通用户应该没有权限修改这个参数的值。DBA也不会去主动修改这个参数。那究竟是什么原因导致开发库不能写入了呢?首先确认了不是开发人员的问题,因为部门的...
  • 详解 Mysql 事务和Mysql 日志

    详解 Mysql 事务和Mysql 日志

    事务特性1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,...
  • Navicat出现无法远程连接MySql服务器问题的解决办法

    Navicat出现无法远程连接MySql服务器问题的解决办法

    Navicat无法远程连接MySql服务器问题的解决方法写在前面:操作系统:中标麒麟4.0;数据库:MySQL5.7.26;JDK:采用中标麒麟系统自带的openjdk;客户端工具:Navicat;前置条件:MySQL服务安装完毕;情景:安装好mysql,本地访问正常,但同一个局域网内的机器都无法访问该服务器上的mysql数据库;原因:mysql默认是不可以通过远程机器访问的,只允许本地访问,通过下面的配置可以开启远程访问;排查思路:mysql设置远程访问主要从以下三个方面去检测:首先检查网络,两台计算机...
  • Mariadb远程登陆配置及问题解决

    Mariadb远程登陆配置及问题解决

    前言:  安装过程不再赘述,直接说问题,mysql的远程连接需要解决两个问题:1.允许root用户远程连接。2.允许任意ip远程连接数据库。当然,在测试和解决问题之前,得首先保证你的数据库与远程主机之间的网络通信没有问题,简单的来说,就是互相ping通,其次,为了避免防火墙的干扰,将本地主机和数据库主机的防火墙都关闭,当然,生产环境下防火墙肯定是要打开的,并且需要额外的安全配置。问题解决:1.新安装的数据库默认是需要初始化的,在数据库服务启动的情况下,使用下面的命令来进行初始化。[root@localho...
  • 通过代码实例了解页面置换算法原理

    通过代码实例了解页面置换算法原理

    页面置换算法:本质是为了让有限内存能满足无线进程。先说明一下处理缺页错误的过程:分页硬件在通过页表转换地址时会注意到无效位被设置,从而陷入操作系统,这种陷阱是因为操作系统未能将所需要的页面调入内存引起的。处理缺页错误:1、检查这个进程的内部表,确定该引用是否为有效的内存访问(可以理解为这个内存能被当前进程使用),如果无效那么直接终止进程;如果有效但是尚未调入页面,就将该页面调入内存。2、然后从空闲帧链表上找到一个空闲帧。3、调度磁盘将进程所需要的内存读入页帧中,4、磁盘读取完成,修改页表,使空闲帧对应到该...
  • 2020年最新mysql面试题大总结

    2020年最新mysql面试题大总结

    在求职过程中,如果我们能提前掌握大量的相关面试题,对我们来说无疑是非常有帮助的,这也直接决定了我们能否被录取。随便开发网作为国内知名学习平台,包含了大量的mysql图文教程、mysql视频教程、mysql进阶教程,自然也为大家整理了最热门、最全面的mysql面试题,希望对大家有所帮助。如果您是一名求职者,那么欢迎您来与我们一起学习!mysql面试题大汇总:《mysql面试题小结》《一些MySQL面试题整理》《收藏!面试会用到的,MySQL常见的面试题》《MYSQL面试题(一)》《收集的MySQL的面试题分...
  • 2020年oracle面试题汇总(最新)

    2020年oracle面试题汇总(最新)

    oracle在数据库领域一直处于领先地位,是目前世界上流行的关系数据库管理系统,所以提前掌握oracle面试题知识点,有助于在求职中取得成功;同时随便开发网作为知名编程网站,有最新最热门的oracle面试题,包括Oracle基础面试题,Oracle常见面试题以及Oracle高级面试题!随便开发网在这里给大家汇总了最热门最全面的Oracle面试题,希望可以帮助到大家,如有最新的orale面试题本网站将会及时更新!Oracle面试题汇总1.2.3.4.5.6.7.8.9.10.11.12.【专题推荐】,以上就...