数据库

  • 了解MySQ(Oracle)模糊查询 使用instr()替代like提升效率

    了解MySQ(Oracle)模糊查询 使用instr()替代like提升效率

    大家都知道like的效率很低,数据量大就会很慢,今天发现了一个内置函数instr()效率比like高SELECT * FROM msg_list WHERE title LIKE %涂山%可以替换为:SELECT * FROM msg_list WHERE INSTR(title,涂山) > 0在 ThinkPHP / Laravel中使用的方法有:使用 whereRaw()执行原生INSTR()修改构造查询器(不太推荐,不过用起来方便)项目根目录\thinkphp\library\think\d...
  • 一条 SQL 查询语句怎么样执行的?

    一条 SQL 查询语句怎么样执行的?

    MySQL 都有哪些零件?连接器:管理连接,权限验证。分析器:词法分析,语法分析。优化器:执行计划生成,索引选择。执行器:操作存储引擎,返回结果。存储引擎:存储数据,提供读写接口。相关学习推荐:连接器第一步,我们会先连接到 MySQL 数据库,此时就是连接上连接器。连接器负责和客户建立连接,获取权限,维持和管理连接。mysql -h $ip -u root -p查询缓存建立好连接之后,我们就可以使用 SELECT 语句了,执行逻辑就会来到第二步:查询缓存。MySQL 会现在查询缓存看看之前是不是执行过这条...
  • mysql有必要升级8吗

    mysql有必要升级8吗

    mysql有必要升级到第8版本,相较于之前的版本,mysql8增加多种新特性,同时也提高了软件各方面的速度。除此之外,mysql8还增加了开窗函数,可以让用户获得更好的使用体验。mysql有必要升级到第8版本,相较于之前的版本,mysql8增加多种新特性,同时也提高了软件各方面的速度。除此之外,mysql8还增加了开窗函数,可以让用户获得更好的使用体验。MySQL由瑞典MySQL AB公司开发,是最流行的关系型数据库管理系统之一。在WEB应用方面,MySQL是最好的RDBMS应用软件之一。MySQL是一种...
  • MySQL对数据库操作(创建、选择、删除)

    MySQL对数据库操作(创建、选择、删除)

    MySQL 创建数据库我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:CREATE DATABASE 数据库名;以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:[root@host]# mysql -u root -p Enter password:****** # 登录后进入终端mysql> create DATABASE RUNOOB;使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。所以我们这边...
  • hbase是一种什么数据库

    hbase是一种什么数据库

    HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hado...
  • mysql limit用法

    mysql limit用法

    mysql中的limit可以被用于强制SELECT语句返回指定的记录数,LIMIT接受一个或两个数字参数,参数必须是一个整数常量,如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SE...
  • sql优化有哪些方法

    sql优化有哪些方法

    sql优化的方法:1、尽量避免使用【select *】,无用的字段会降低查询效率;2、避免使用in和not in,可以选择between和exists代替;3、避免使用or,可以选择union代替。sql优化的方法:()1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全...
  • 非关系型数据库有哪些

    非关系型数据库有哪些

    非关系型数据库有:1、MongoDB,是一个面向文档的开源NoSQL数据库;2、Cassandra,是Facebook为收件箱搜索开发的;3、Redis,是最著名的键值存储。什么是NoSQL数据库?NoSQL数据库(非关系型数据库)是用于存储和检索数据的非关系数据库系统。在当今世界,我们不应该只以没有预定义固定模式的表格式存储所有数据(固定没有列)。像用户生成的数据、地理位置数据、物联网生成的数据一样,社交图是真实世界数据呈指数级增长的例子。这些庞大的数据也需要大量的处理。这时NoSQL数据库就出现了。使...
  • 分布式数据库有哪些

    分布式数据库有哪些

    分布式数据库有:1、物联网方向,时序数据库产品,满足IoT数据的收集、存储和统计,例如InfluxDB、Kudu、kdb、OpenTSDB;2、交易关系方向,蚂蚁金服Oceanbase、腾讯TDSQL。市面上分布式数据库产品分成几大类:1、物联网方向:时序数据库产品,满足IoT数据的收集、存储和统计。时序数据库产品也是现在对内存数据库产品冲击最大的。例如:InfluxDB、Kudu、kdb、OpenTSDB;2、交易关系方向:替代传统交易关系型数据库产品Oracle/DB2等满足不了海量吞吐、海量并发、海...
  • redis默认端口是什么

    redis默认端口是什么

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,redis的默认端口号是6379。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis的默认端口号是6379。为什么Redis选择6379作为默认端口号?6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。Alessia Merz...
  • 事务的四个隔离级别分别是什么

    事务的四个隔离级别分别是什么

    事务的四个隔离级别分别是:1、读取未提交内容(Read Uncommitted);2、读取提交内容(Read Committed);3、可重读(Repeatable Read);4、可串行化(Serializable)。事务的四个隔离级别:()一、Read Uncommitted -- 读取未提交内容一个事务可以查看到未提交的内容常产生脏读问题(脏读:读取到其他事务未提交(执行)的内容)对同一数据表开启A、B两个事务(A、B事务交叉) start transactionA事务只查询数据表中内容,B事务做增...
  • 新的主节点是通过什么产生的

    新的主节点是通过什么产生的

    新的主节点是通过选举产生的,并基于Raft算法的领头选举“leader election”方法实现;集群里每个负责处理槽的主节点都有一次投票的机会,而第一个向主节点要求投票的从节点将获得主节点的投票。选举新的主节点新的主节点是通过选举产生的,基于 Raft 算法的领头选举(leader election)方法实现集群里每个负责处理槽的主节点都有一次投票的机会,而第一个向主节点要求投票的从节点将获得主节点的投票当从节点发现自己正在复制的主节点进入已下线状态,从节点会向集群广播一条消息,要求所有收到消息具有投...
  • 对象关系映射ORM有什么缺点?

    对象关系映射ORM有什么缺点?

    对象关系映射ORM的缺点是:1、执行效率低,自动化进行关系数据库的映射,需要消耗系统性能;2、不够灵活,对于复杂的查询,ORM力不从心;3、很有可能将全部数据提取到内存对象中,持久化所有属性,将消耗更多的内存空间。对象关系映射(Object Relational Mapping,ORM)是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。具体地说,就是通过使用描述对象和数据库之间映射的元数据,来实现面向对象语言程序中的对象与关系数据库中数据的映射。从效果上说,它其实是创建了一个可在...
  • 对象关系映射ORM的优点有哪些?

    对象关系映射ORM的优点有哪些?

    对象关系映射ORM的优点有:1、提高了开发效率,降低开发成本;2、只需要面向对象编程,不需要面向数据库编写代码;3、隐藏了数据访问的细节,从而实现了数据模型与数据库的解耦,屏蔽了不同数据库操作上的差异。对象关系映射ORM的优点有:面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。对象关系映射(Object Relational Mapping,ORM)是一种程序设计技术,用...
  • redis有序集合的相关命令有哪些

    redis有序集合的相关命令有哪些

    redis有序集合的相关命令有:1、“ZADD”,调用ziplistInsert函数,将成员和分值作为两个节点分别插入到压缩列表;2、“ZCARD”,调用ziplistLen函数,获得压缩列表包含节点的数量;3、“ZCOUND”命令等。有序集合命令的实现方法命令ziplist 编码的实现方法zset 编码的实现方法ZADD调用 ziplistInsert 函数,将成员和分值作为两个节点分别插入到压缩列表先调用 zslInsert 函数,将新元素添加到跳跃表,然后调用 dictAdd 函数,将新元素关联到字...
  • redis集合的相关命令有哪些

    redis集合的相关命令有哪些

    redis集合的相关命令有:1、“SADD”,调用intsetAdd函数,将所有新元素添加到整数集合里面;2、“SCARD”,调用intsetLen函数,返回整数集合所包含的元素数量;3、“SISMEMBER”命令等等。集合命令的实现方法命令intset 编码的实现方法hashtable 编码的实现方法SADD调用 intsetAdd 函数,将所有新元素添加到整数集合里面调用 dictAdd,以新元素为键,NULL 为值,将键值对添加到字典里面SCARD调用 intsetLen 函数,返回整数集合所包含的...
  • 什么是快照持久化

    什么是快照持久化

    快照持久化指的是将某一时刻的所有数据写入硬盘,快照是内存数据的二进制序列化形式,在存储上非常紧凑,而AOF日志记录的是内存数据修改的指令记录文本。快照持久化将某一时刻的所有数据写入硬盘。使用BGSAVE命令,随着内存使用量的增加,执行 BGSAVE 可能会导致系统长时间地停顿。相关介绍:Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制 来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。Redis 的持久化机制有两种,第一种是快照,第二种...
  • my.cnf配置文件在哪

    my.cnf配置文件在哪

    my.cnf配置文件在linux上是位于路径“/etc/my.cnf”下,在window上则位于安装目录的根目录下;可以使用命令“mysql --help”查看关于MYSQL对应配置文件“my.cnf”搜索顺序。一般linux上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没找到, window 上 可以登录到mysql中 使用 show variables like %data% 先找到data 存放路径, 一般my.ini 在 data文件的上一级。wi...
  • sql语句执行顺序优先级是什么?

    sql语句执行顺序优先级是什么?

    sql执行顺序优先级由高到低依次是:from关键字后面的语句、where关键字后面的语句、“group by”后面的语句、select后面的语句、“order by”后面的语句。 这一条语句包含我们经常用到的一些关键字,select,from,where,group by,order by,它的执行顺序如下:先执行from关键字后面的语句,明确数据的来源,它是从哪张表取来的。接着执行where关键字后面的语句,对数据进行筛选。再接着执行group by后面的语句,对数据进行分组分类。然后执行select后...
  • MySQL单表容量有多少

    MySQL单表容量有多少

    MySQL单表容量在500万左右,性能处于最佳状态,此时MySQL的BTREE索引树高在3到5之间;而单表最大限已经不再由MySQL限制了,改为电脑容量限制了。MySQL单表容量MySQL 单表容量在500万左右,性能处于最佳状态,此时,MySQL 的 BTREE 索引树高在3~5之间。相关介绍:MySQL 单表大小限制MySQL 3.22中,MySQL 的存储引擎是 ISAM ,单表最大限为 4 GB。MySQL 3.23起,MySQL 的存储引擎是 MyISAM,单表最大限为 64 PB(671088...
  • mysql事务是什么意思

    mysql事务是什么意思

    mysql事务是一组原子性的SQL查询,或者说一个独立的工作单元,事务内的语句,要么全部执行成功,要么全部执行失败;事务需要符合“原子性”、“一致性”、“隔离性”。事务就是一组原子性的 SQL 查询,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败ACID 特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)事务是数据库系统区别于其他一切文件系统的重要特性之一事务是一组具有原子性的SQL语句,或是一个独...
  • 单表查询是什么

    单表查询是什么

    单表查询指的是在一张表中进行数据的查询,它的执行顺序是“from->where->group by->having->distinct->order by->limit->select”。在数据库操作中,单表查询就是在一张表中进行数据的查询,详细它的语法是:select distinct 字段1,字段2... from 表名where 分组之前的过滤条件group by 分组字段having 分组之后的过滤条件order by 排序字段limit 显示的条数;语法是样的一个顺序,但是它的执行顺序就不是从语...
  • mysql engine表示什么

    mysql engine表示什么

    mysql engine表示存储引擎,存储引擎是MySQL中具体的与文件打交道的子系统,MySQL的存储引擎是插件式的,它根据MySQL AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制。Engine:存储引擎存储引擎是MySQL中具体的与文件打交道的子系统。也是MySQL最具有特色的一个地方。MySQL的存储引擎是插件式的。它根据MySQL AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)。现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的My...
  • mysql optimizer是什么

    mysql optimizer是什么

    mysql optimizer指的是查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化,语法如“select uid,name from user where gender = 1;”。Optimizer: 查询优化器SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。用一个例子就可以理解: select uid,name from user where gender = 1;这个select 查询先根据where 语句进行选取,而不是先将表全部查询...
  • SQL Interface是什么

    SQL Interface是什么

    SQL Interface指的是SQL接口,表示接受用户的SQL命令,并且返回用户需要查询的结果,比如select from就是调用SQL Interface。SQL Interface: SQL 接口接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface。MySQL是由SQL接口,解析器,优化器,缓存,存储引擎组成的。相关介绍:MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational...
  • mysql connectors是什么

    mysql connectors是什么

    mysql connectors指的是不同语言中与SQL的交互,而MySQL就是由SQL接口、解析器、优化器、缓存、存储引擎组成的。Connectors指的是不同语言中与SQL的交互。MySQL是由SQL接口,解析器,优化器,缓存,存储引擎组成的。相关介绍:客户端与服务器端模型MySQL是一个典型的C/S模式,单进程多线程的服务结构。MySQL自带的客户端程序在/usr/local/mysql/bin下,如:mysql、 mysqladmin、mysqldump等;服务端程序是mysqld(即守护进程,二...
  • 数据库触发器怎么创建

    数据库触发器怎么创建

    创建数据库触发器的语法是:【CREATE ON FOR EACH Row】。触发器在当前数据库中具有唯一的名称。在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。()语法格式如下:CREATE ON FOR EACH Row语法说明如下:1、触发器名触发器的名称,触发器在当前数据库中必须具有唯一...
  • redis限流的实现方式有几种?

    redis限流的实现方式有几种?

    redis限流的实现方式有3种,分别是:1、基于Redis的setnx的操作,给指定的key设置了过期实践;2、基于Redis的数据结构zset,将请求打造成一个zset数组;3、基于Redis的令牌桶算法,输出速率大于输入速率,就要限流。redis限流的实现方式有3种,分别是:第一种:基于Redis的setnx的操作 我们在使用Redis的分布式锁的时候,大家都知道是依靠了setnx的指令,在CAS(Compare and swap)的操作的时候,同时给指定的key设置了过期实践(expire...
  • Redis集群故障转移如何实现

    Redis集群故障转移如何实现

    Redis集群故障转移的方法:1、从所有的从节点里面选举出一个新的主;2、选举出的新主会执行slaveof no one把自己的状态从slave变成master;3、撤销已下线的主节点的槽指派,并把这些槽位重新指派给自己。Redis集群故障转移的方法:一、故障检测- 1.集群中所有节点都会向其它节点发送PING消息,当在规定的时间内,没有收到对应的PONG消息,就把此节点标记为疑似下线;- 2.在发送的PING消息里面,会带着当前集群和节点的信息;通过这种方式,即可检测节点的存活,又能维护集群信息的统一性...
  • Redis集群怎么进行故障检测?

    Redis集群怎么进行故障检测?

    Redis集群进行故障检测的方法:首先修改Python脚本,每隔1s写入一条数据;然后循环往Redis集群中写入数据,并强制杀掉一个主节点观察应用程序连接情况;最后重启宕机的8001节点即可。Redis集群进行故障检测的方法:自动故障转移测试修改Python脚本,每隔1s写入一条数据,目的是便于观察在主节点宕机,集群自动故障转移这个时间段之之内(1s钟左右),对于应用程序的影响,或者说应用程序在自动故障转移前后的表现。如下脚本循环往Redis集群中写入数据,执行期间,强制杀掉一个主节点,观察应用程序连接情...