数据库
文章平均质量分 56
hober.z
修炼
展开
-
InnoDB MVCC 机制,看这篇就够了
本文详细的介绍了什么是MVCC?为什么要有MVCC?以及MVCC的内部实现原理:包括Undo Log的版本链是如何组织的,RR、RC两个级别下一致性读是如何实现的等。通过案例、插图,以最通俗易懂的方式,让你彻底掌握MVCC的来龙去脉。1 什么是MVCCMVCC (Multiversion Concurrency Control)中文全称叫多版本并发控制,是现代数据库(包括MySQL、Oracle、PostgreSQL等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的...转载 2020-10-14 23:45:16 · 374 阅读 · 0 评论 -
MySQL数据库新增用户并授权
创建用户create user 'test'@'localhost' identified by '123456'; -- 允许本地ip访问create user 'test'@'%' identified by '123456'; -- 允许外网ip访问flush privileges; -- 刷新权限为新用户分配指定数据库权限create database testd...原创 2018-09-02 09:45:08 · 281 阅读 · 0 评论 -
当我们输入一条 SQL 查询语句时,发生了什么?
我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在...转载 2018-11-25 16:35:24 · 388 阅读 · 0 评论 -
MySQL事务基本使用
MySQL 事务处理两种使用方式:1、用 BEGIN, ROLLBACK, COMMIT来手动实现,其中涉及三个命令BEGIN 开始一个事务ROLLBACK 事务回滚COMMIT 事务确认2、直接用 SET 来改变 MySQL 的自动提交模式SET AUTOCOMMIT=0 禁止自动提交SET AUTOCOMMIT=1 开启自动提交事务控制语句:BEGIN或START ...原创 2018-12-21 20:22:00 · 1000 阅读 · 0 评论 -
SQL中where、having之间的区别和用法
聚合函数是比较where、having 的关键。开门见山。where条件、聚合函数、having 在from后面的执行顺序:where条件 > 聚合函数(sum,min,max,avg,count) > having样例:select sum(score) from student where sex='man' group by name having sum(scor...原创 2018-12-21 20:32:44 · 328 阅读 · 0 评论 -
SQL中的常用查询
聚合聚合的语法规则如下SELECT [field1,field2,...fieldn] fun_nameFROM tablename[WHERE where_condition][GROUP BY field1,field2,...fieldn[WITH ROLLUP]][HAVING where_condition]其中fun_name表示要做的聚合操作,常用的有sum,c...原创 2019-06-25 23:52:21 · 381 阅读 · 0 评论 -
MySQL中的整数类型int(n)有啥用
如果你认为括号内n指定了数值的大小,那就错啦!括号内的n表示的是**显示宽度**,一般与zerofill配合使用。原创 2019-06-29 11:44:10 · 946 阅读 · 0 评论 -
MySQL char与varchar的区别
存储方式不同char列的长度固定为创建表时声明的长度,刻度可以为从0~255的人一直varchar为可变长字符串,长度可以指定为0~65535之间的值。检索方式不同char列会删除尾部的空格varchar保留尾部的空格如下例:如果再将尾部添加一个’-‘’字符,可以看得更加清楚,如...原创 2019-06-29 12:05:26 · 121 阅读 · 0 评论 -
MySQL字符又乱码了?快来看一下如何配置字符集吧
MySQL中的字符集字符集和校对规则校对规则命名约定字符集级别及设置服务端字符集和校对规则数据库字符集和校对规则表字符集和校对规则列字符集和校对规则连接字符集和校对规则MySQL字符集修改步骤步骤字符集和校对规则MySQL包含字符集(character)和校对规则(collation)两个概念。字符集用来定义MySQL存储字符串的方式校对规则用来定义比较字符串的方式字符集和校对规则是...原创 2019-07-06 17:35:49 · 265 阅读 · 0 评论 -
MySQL中explain用法含义说明
explain是MySQL中执行计划分析的利器,经常用来分析低效SQL。通过explain我们可以获取到数据的访问类型、索引的使用、分区信息等情况。这里列举以下explain分析的结果含义。select_type表示select的类型,常见的取值有simple(简单表,即不使用表连接或者子查询)、primary(主查询,即外层的查询)、union(union中的第二个或者后面的查询语句)、s...原创 2019-07-18 23:58:12 · 723 阅读 · 0 评论 -
Ubuntu18.04源码安装MySQL8.0
此次安装是将所有mysql相关信息都放在/home/mysql8目录下的!方便以后修改重装。源码包下载地址:https://dev.mysql.com/downloads/mysql/预先下载一些需要的库和工具apt-get install cmake gcc libncurses5-dev为了不污染源码包,在源码包下建一个build目录,在build目录中编译mkdir /home/...原创 2019-09-15 10:24:57 · 1594 阅读 · 0 评论 -
理解事务的4种隔离级别
原文地址:https://blog.csdn.net/qq_33290787/article/details/51924963数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。...转载 2018-04-24 21:13:45 · 159 阅读 · 0 评论 -
Redis常用基本命令
获取所有keykeys *获取key类型type key_nameString字符串set str1 abcget strdel str自增、自减(要求能转换为数字)incr key1decr key1hash哈希键值(key=>value)对集合,适合存储对象。格式为 集合1 key1 value1 ...原创 2018-04-04 23:02:11 · 146 阅读 · 0 评论 -
MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
MySQL中涉及的几个字符集character-set-server/default-character-set:服务器字符集,默认情况下所采用的。character-set-database:数据库字符集。character-set-table:数据库表字符集。优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符转载 2016-05-17 23:33:48 · 4542 阅读 · 0 评论 -
CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
1、安装MariaDB安装命令yum -y install mariadb mariadb-server安装完成MariaDB,首先启动MariaDBsystemctl start mariadb设置开机启动systemctl enable mariadb接下来进行MariaDB的相关简单配置mysql_secure_in原创 2016-07-17 20:41:53 · 1510 阅读 · 0 评论 -
解决Incorrect integer value: '' for column 'id' at row 1的方法
在使用Navicat for MySQL还原数据库备份时,出现Incorrect integer value: '' for column 'id' at row 1的错误; 网上查资料发现5以上的版本如果是空值应该要写NULL这种问题一般mysql 5.x上出现。使用Select version();查看,我用的是mysql5.0.37,而创建备份的MySQL数据转载 2017-03-26 21:39:29 · 5183 阅读 · 0 评论 -
openSUSE下lamp部署
openSUSE Leap 42.2适用。首先,获得root权限。准备apache2安装apache2zypper in apache2启动apache服务器systemctl start apache2 重启apache服务器,使用systemctl restart apache2 停止apache服务器,使用systemctl stop ap原创 2017-05-12 17:57:25 · 566 阅读 · 0 评论 -
error 1044 (42000):access denied for user ''@'localhost' to database 'mysql' 解决方法
重新安装mariaDB数据库时,出现安装权限问题,中止安装发现居然能够登陆mysql,但是登陆时可以不填密码,操作数据库时会报错:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。我是远程登录数据库的,网上找了一些方法,终于搞定了。 后来解决成功发现是因为mari原创 2016-06-27 09:25:27 · 8583 阅读 · 1 评论 -
PHP7操作MongoDB增删改查
说明 BulkWrite 收集将被发送到服务端的写入选项 Manager 定义一个连接器,连接到数据库 WriteConcern 配置写入策略,满足不同写入需求 executeBulkWrite 真正执行写入增$bulk = new MongoDB\Driver\BulkWrite;$bulk->insert(['x'=>1,'name'=>'taobao','url'=>'原创 2017-10-14 11:11:48 · 1401 阅读 · 0 评论 -
mysql concat系函数
数据库中数据如下select * from test;concatconcat将多个字段合在一起展示,如select concat(id,name,sex) from test;concat_ws如果要规定字段之间的连接符,使用concat_ws,如select concat_ws('*',id,name,sex) from test;group_concat例如:根据sex分组,把id,name字原创 2017-12-09 22:52:26 · 357 阅读 · 0 评论 -
mysql 查询两个时间段是否有交集的情况
数据库的字段 start_time, end_time 输入的字段 a,b第一种SELECT * FROM test_tableWHERE (start_time >= a AND start_time <= b) OR (start_time AND end_time >= b) OR (end_time >= a AND end_time 第二转载 2018-01-21 17:33:18 · 1211 阅读 · 0 评论 -
MongoDB设置密码登录
1.创建user administrator> use admin> db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })关于roles官方文档:https://d...原创 2018-02-27 23:39:01 · 4690 阅读 · 0 评论 -
MongoDB重装后无法启动的一个可能原因
mongo启动失败,service mongodb status查看状态如下● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: f...原创 2018-03-21 12:36:58 · 7284 阅读 · 2 评论 -
远程连接mysql/mariaDB数据库时出现1045错误
远程测试连接mysql/mariaDB数据库的过程中有时会提示 “1045-Access denied for user root@IT(using password:NO)” 这种错误,出现这种错误的原因是没有给远程登录用户添加所有机器都能访问的权限,对应的解决办法如下: 添加相应的权限,添加权限命令如下: grant all on *.* to 用户名@"%" identified by原创 2016-05-01 23:30:33 · 1997 阅读 · 0 评论