数据库
五山口老法师
腾讯后台开发工程师
展开
-
关于mysql的“+0”操作
原创 2021-09-27 18:08:07 · 4035 阅读 · 0 评论 -
MYSQL: DML/DDL/DCL
DDLDDL的概述DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操原创 2021-07-04 15:54:59 · 3352 阅读 · 0 评论 -
mysql 安装
https://zhuanlan.zhihu.com/p/152088558首先进入到cd /home/data/目录下(没有目录自己创建一个)创建 data 目录 并进入1.下载 MySQL yum包wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm如果 wget 不存在,使用 yum 安装它yum -y install wget下载完成2. 安装MySQL源rp..原创 2021-04-15 19:23:21 · 761 阅读 · 0 评论 -
MySQL: load data infile 需要注意的点
load data infile 批量将文本导入到mysql的表中。主要是为了加快导入记录的速度。---给个例子:1.文本如下 t0.txt:"我爱你","20","相貌平常,经常耍流氓!哈哈""李奎","21","相貌平常,经常耍流氓!哈哈""王二米","20","相貌平常,经常耍流氓!哈哈""老三","24","很强""老四","34","XXXXX""老五","52","***%*¥*¥*¥*¥""小猫","45","中间省略。。。""小狗","12","就会叫""小.原创 2020-10-12 00:25:00 · 363 阅读 · 0 评论 -
Mycat:压测Mycat及结果分析
前言Mycat是业内知名mysql数据库中间件,其功能在各种mysql中间件中是比较丰富的.而mycat相关组件由java语言编写,部署方便.他的功能有:不透明代理,读写分离,负载均衡,数据分片等.而且因为其底层连接方式是用java的jdbc组件来连接数据库的,所以理论上是支持sql server,oracle,pgsql的,但是功能上主要集中在mysql上.优点:部署简单,功能强大...原创 2019-10-25 21:32:53 · 1356 阅读 · 0 评论 -
数据库:数据库水平切分?垂直切分?整合方案?可能存在的问题?
前言通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。这时候,我们就必须许找其他技术手段来解决这个瓶颈,那就是我们这一章所要介绍恶的数据切分技术。不但要切开分到不同的DB,还要尽量减少各个DB之间的关联何谓数据切分可能很多读者朋友在网上或者杂志上面都已经多次见...原创 2019-02-21 23:44:02 · 1766 阅读 · 0 评论 -
MYSQL:explain分析
mysql explain分析通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈。通过expalin可以得到:1. 表的读取顺序2.表的读取操作的操作类型3.哪些索引可以使用4. 哪些索引被实际使用5.表之间的引用6.每张表有多少行被优化器查询 explain显示字段 1. id :语句的执行顺序标识2. s...原创 2019-01-02 21:02:51 · 196 阅读 · 0 评论 -
MYSQL:子查询关键字 ANY/SOME/IN/ALL
子查询就是指在一个select语句中嵌套另一个select语句。any,in,some,all分别是子查询关键词之一,any 可以与=、>、>=、<、<=、<>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。all可以与=、>、>=、<、<=、<>结合是来使用,分别表示等于、大于...原创 2019-01-02 21:24:19 · 1672 阅读 · 0 评论 -
海量数据的处理
何谓海量数据处理? 所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。 那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树,针对空间,无非就一个办法:大而化小,分而...原创 2019-01-02 23:07:38 · 307 阅读 · 0 评论 -
C语言连接MYSQL存取数据的一个例子
1.在linux上安装好Mysql;查看本博客安装教程 2. 编译:gcc -I/usr/include/mysql XXXX.c -L/usr/lib/mysql -lmysqlclient -o XXXX(详解:需要在gcc编译时指定 头文件地址,用命令mysql_config,即可获取mysql安装后头文件所在位置,库文件所在位置,之后指定相关路径。-I /usr/include/m...原创 2019-01-02 17:40:43 · 373 阅读 · 0 评论 -
MYSQL:多表联合查询的例子
先将 dept_emp 和 employees 连接起来; 再将产生的新表和departments 表连接起来涉及到连接的嵌套。select e.last_name,e.first_name,dp.dept_namefrom (employees e left join dept_emp de on e.emp_no = de.emp_no)left join depart...原创 2019-01-04 22:08:51 · 544 阅读 · 0 评论 -
MYSQL:HAVING
SELECT子句及其顺序:SELECT -- FROM -- WHERE -- GROUP BY -- HAVING -- ORDER BY -- LIMITHAVING 用于GROUP BY之后,常一起搭配使用。HAVING 是在GROUP BY 分组之后的二次筛选。 栗子:代码:select title,count(title) as t from titl...原创 2019-01-04 20:59:57 · 2033 阅读 · 1 评论 -
常见存储引擎及比较
四种mysql存储引擎前言数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。存储引擎查看MySQL给开发者提供了查询存储引擎的功能,我这里使用...原创 2018-12-30 14:37:44 · 404 阅读 · 0 评论 -
通俗易懂权限管理模块设计
通俗易懂权限管理模块设计原创 2018-12-30 14:10:19 · 311 阅读 · 0 评论 -
数据库:分布式事务的解决方案
本节涉及到一些技术术语:2PC、CAP、BASE、RocketMQ、RabbitMQ、XA、Kafka、TCC事务在数据库系统中,一个事务是指:由一系列数据库操作组成的一个完整的逻辑过程。例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和,构成一个完整的逻辑过程,不可拆分。这个过程被称为一个事务,具有ACID特性。ACID:是指在数据库管理系统(DBMS)中...原创 2018-12-30 13:25:29 · 369 阅读 · 0 评论 -
MYSQL: MERGE引擎实现多分表的联合
MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。假设你有几个日志数据表,他们内容分别是这几年来每一年的日志记录项,他们的定义都是下面这样,YY代表年份: ...原创 2018-12-29 16:38:34 · 402 阅读 · 0 评论 -
MYSQL:约束?添加约束?删除约束?以及一些其他修饰?
MySQL中的约束,添加约束,删除约束,以及其他的一些修饰:一.NOT NULL(非空约束)添加非空约束1)建表时直接添加CREATE TABLE t_user(user_id INT(10) NOT NULL);2)通过ALTER 语句ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL;ALTER TABLE t_user ...原创 2019-01-08 09:10:32 · 153 阅读 · 0 评论 -
Mysql实战:主从同步
在两台机器上安装MySQL.主机地址分别为:Master:192.168.11.104Slave:192.168.11.103启动mysql服务:/etc/init.d/mysql start修改主库的配置文件 my.cnf (属性说明自行百度)修改从库的配置文件 my.cnf进入从库,配置主库,执行:change master to master_...原创 2019-01-23 20:54:19 · 185 阅读 · 0 评论 -
数据库:MySQL索引总结
20多条数据源随机生成200万条数据,平均每条数据源都重复大概10万次,表结构比较简单,仅包含一个自增ID,一个char类型,一个text类型和一个int类型,单表2G大小,使用MyIASM引擎。开始测试未添加任何索引。执行下面的SQL语句:mysql> SELECT id,FROM_UNIXTIME(time) FROM article WHERE a.title='测试标题'...原创 2019-02-21 21:16:01 · 149 阅读 · 0 评论 -
Centos安装MySQL
目录 1、官方安装文档 2、下载 Mysql yum包 3、安转软件源 4、安装mysql服务端 5、首先启动mysql 6、接着检查mysql 的运行状态 7、修改临时密码 7.1 获取MySQL的临时密码 7.2 登陆并修改密码 8、授权其他机器登陆 9、关于密码设置的详细说明文章来自:http://www....原创 2019-05-16 14:20:47 · 136 阅读 · 0 评论 -
MySQL: linux mysql access denied for user ‘root’@’localhost'(using password:YES)
linux安装完mysql后,使用程序连接报以上错误Access denied for user 'root'@'localhost'(using password:YES)解决方法,重新设置密码,步骤如下1.先停掉原来的服务service mysqld stop 或者 /etc/init.d/mysql stop2.使用安全模式登陆,跳过密码验证nohup ...原创 2019-04-23 11:03:43 · 151 阅读 · 0 评论 -
Mysql:增加用户和密码,赋予权限
创建用户:CREATE USER 'ebemate'@'localhost' IDENTIFIED BY 'ebematepasswd';赋予所有权限:grant all on *.* to 'ebemate'@'localhost';之前写:grant all on *.* to 'ebemate'@'localhost' identified by 'ebematepas...原创 2019-04-01 11:07:42 · 344 阅读 · 0 评论 -
数据库:数据库死机和掉电时如何让恢复数据
在数据库读写过程中突然死机或者断电的情况下,如果事先都做好了备份,在故障发生时可以将备份数据同步到当前数据库主机。做备份的时候,尽量不要将备份的数据和当前数据库数据放置在同一个物理磁盘上,应当存储在另一主机物理盘上。以免硬盘出故障,备份也损坏。还有就是发生这种情况的时候,如果内存中有很多重要数据正在与数据库同步,如何保证内存中的数据不被丢失?如果数据库和内存数据正在同步,在掉电或死机时...原创 2019-03-21 10:00:04 · 1296 阅读 · 0 评论 -
数据库:redis和MySQL如何做到数据的一致性?
redis系列之数据库与缓存数据一致性解决方案-- 来自中华石杉老师视频数据库与缓存读写模式策略写完数据库后是否需要马上更新缓存还是直接删除缓存?(1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更...原创 2019-03-05 12:50:34 · 972 阅读 · 0 评论 -
数据库:为什么使用B+树而不使用红黑树
B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。所以从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。那么Mysql如何衡量查询效率呢?– 磁盘IO次数。B-树/B+树 的特点就是每层节点数目非常多,层数很少,目的就是为了就少磁...原创 2019-03-05 10:13:33 · 7994 阅读 · 0 评论 -
MYSQL:MYSQL索引为什么选择B+树?
带有顺序访问指针的B+Tree一般在数据库系统或文件系统中使用的B+Tree结构都在经典B+Tree的基础上进行了优化,增加了顺序访问指针。图4如图4所示,在B+Tree的每个叶子节点增加一个指向相邻叶子节点的指针,就形成了带有顺序访问指针的B+Tree。做这个优化的目的是为了提高区间访问的性能,例如图4中如果要查询key为从18到49的所有数据记录,当找到18后,只需顺着节点和指...原创 2019-02-24 17:35:27 · 1029 阅读 · 2 评论 -
B树和B+树的不同
多路查找树:和之前学习的二叉树不同的是,多路树的每一个节点的孩子数可以多于两个!同时每个孩子节点可以存储多个元素。多路查找树有4种特殊形式:2-3树、2-3-4树、B树、B+树2-3树每个节点都具有2个孩子(称之为2节点)或者3个孩子(称之为3节点)。一个2节点包含一个元素和两个孩子(或没有孩子)。一个3节点包含两个元素和三...原创 2019-02-24 17:09:47 · 256 阅读 · 0 评论 -
数据库:数据库的连接池原理及实现
对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用...原创 2019-02-21 23:47:12 · 7419 阅读 · 0 评论 -
数据库:B+树索引和Hash索引得区别
导读在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议。二者区别备注:先说下, 在MySQL文档里,实际上是把B+树索引写成了BTREE ,例如像下面这样的写法:CREATE TABLE t(aid int unsigned not null auto_increment,userid int unsigned ...原创 2019-02-21 22:35:07 · 918 阅读 · 0 评论 -
关系型数据库和非关系型数据库
一、什么是关系型数据库1. 关系数据库:是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说来就是关系型数据库用了选择、投影、连接、并、交、差、除、增删查改等数学方法来实现对数据的存储和查询。可以用SQL语句方便的在一个表及其多个表之间做非常复杂的数据查询。安全性高。2. 非关系型数据库:简称NOSQL,是基于键值对的对应关系,并且不需要经过SQL...原创 2018-12-29 16:23:36 · 874 阅读 · 0 评论 -
数据库事务隔离技术之 Next-Key Locks
Next-Key LocksNext-Key Locks 是 MySQL 的 InnoDB 存储引擎的一种锁实现。MVCC 不能解决幻读的问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读(REPEATABLE READ)隔离级别下,使用 MVCC + Next-Key Locks 可以解决幻读问题。Record Locks锁定一个记录上的索引,而不是记录...原创 2018-12-18 22:58:38 · 705 阅读 · 0 评论 -
MySQL:给表的某个字段添加唯一性约束
alter table product_category add unique key unique_category_type (category_type);删除唯一约束ALTER TABLE tb_name DROP {INDEX | KEY} index_name;原创 2018-11-25 20:55:34 · 5021 阅读 · 1 评论 -
12:MYSQL 使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度)
第一步:创建Sequence管理表 sequenceDROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) NOT NULL, current_value INT NOT NULL, increment INT NOT NULL DEFAULT 1, PRIMARY KEY (name) ) ...原创 2018-11-04 22:03:10 · 512 阅读 · 0 评论 -
10.MYSQL:什么是事务?事务的性质?事务的应用?
所谓事务,其实就是相当于操作系统里的原子性操作。它将一组对于数据库表的操作绑定在一起,只有所有操作都成功,才提交,只要有一个操作失败的话,那么就不会提交。这样的机制保证了数据库数据的原子性、一致性、隔离性以及持久性。 所谓ACID即是上面提到的原子性、一致性、隔离性以及持久性。原子性:事务被视为不可分割的最小单元。事务的所有操作要么全部提交成功,要么全部失败回滚。一致性:数据...原创 2018-10-09 20:45:25 · 1202 阅读 · 0 评论 -
9.MYSQL:MyISAM表级锁(共享读锁 & 独占写锁)串行+并发
数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。下面举例说明并发操作带来的数据不一致性问题:现有两处火车票售票点,同时读取某一趟列车车票数据库中车票余额为 X。两处售票点同时卖出一张车票,同时修改余额为 X -1写回数据库,这样就造成了实际卖出两张火车票而数据库中的记录却只少了一张。 产生这种情况的原因是因为两...原创 2018-10-08 22:51:48 · 615 阅读 · 0 评论 -
11MYSQL:慢查询以及优化步骤
MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询。1、查看时间限制show variables like '%long%';如果查询超过long_query_time的时间就称为慢查询。2、查看数据库的启动时间show status like 'uptime%';3、查看查询语句条数show status like 'com_Select';4、获...原创 2018-10-11 13:52:48 · 496 阅读 · 0 评论 -
8.MYSQL:触发器的使用[TRIGGER]
触发器是一种特殊的存储过程,它在插入,删除或者修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。它具有这样的特征:监视地点:一般就是表名监视事件:update/delete/insert触发时间:after/before触发事件:update/delete/insert说得直白一点就是,当对一个表进行update/delete/inser...原创 2018-09-14 08:32:44 · 1131 阅读 · 0 评论 -
7.数据库的锁机制
并发控制在计算机科学,特别是程序设计、操作系统、多处理机和数据库等领域,并发控制(Concurrency control)是确保及时纠正由并发操作导致的错误的一种机制。数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。下面举例说明并发操作带来的数据不一致性问题:现有两处火车票售票点,同时读取某一趟列车...原创 2018-09-13 11:15:58 · 168 阅读 · 0 评论 -
6.MYSQL视图的使用和管理
什么是视图(View)?视图其实就是一张表。 1、视图的使用条件如果某个查询结果出现的非常频繁,而且要经常拿这个查询结果来做子查询,为了减少代码的编写,使用视图会更加方便。 2、使用视图的好处a、简化查询语句b、可以进行权限控制把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据列。c、大数据表分表的时候,比如某张表的数据有100万条,那么可以将这张...原创 2018-09-10 19:38:45 · 127 阅读 · 0 评论 -
5.MYSQL存储过程的管理
1、查看数据库的存储过程如: show procedure status where db='caiwu';2、查看当前数据库下面的存储过程的列表如: select specific_name from mysql.proc;3、查看存储过程的内容如: select specific_name,body from mysql.proc;4、查看...原创 2018-09-10 18:58:35 · 123 阅读 · 0 评论