mysql
文章平均质量分 50
firstcode666
这个作者很懒,什么都没留下…
展开
-
什么是 MySQL 的 回表 ?怎么减少回表的次数?
BearBrick0 于 2022-03-06 18:59:00 发布 ...转载 2022-03-09 09:39:02 · 8378 阅读 · 4 评论 -
MySQL 添加索引,删除索引及其用法
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索引,是mysql优化的一个重要手段。 索引的目的在于提高...转载 2022-03-04 20:30:04 · 3210 阅读 · 0 评论 -
MySQL中datetime和timestamp的区别及使用
一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP()二、关于TIMESTAMP和DATETIME的比较一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YY转载 2022-03-03 15:23:38 · 376 阅读 · 0 评论 -
mysql创建唯一索引
查看索引 show index from 数据库表名alter table 数据库add index 索引名称(数据库字段名称)PRIMARY KEY(主键索引)ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )UNIQUE(唯一索引)ALTER TABLE `table_name` ADD UNIQUE (`column`)INDEX(普通索引)mysql>ALTER TABLE `table_name` ADD INDEX...转载 2022-02-23 09:33:55 · 11131 阅读 · 0 评论 -
浅析MySQL中change与modify的区别
MySQL版本show variables like 'version';表结构desc student;修改表例如:修改表student的name字段,将varchar(10)修改为varchar(20)modifyalter table student modify name varchar(20);changealter table student change name name varchar(20);修改列名修改列名只能使用change修改..转载 2022-02-22 10:13:59 · 242 阅读 · 0 评论 -
MySQL8.0建立一张能自动记录创建时间和更新时间的数据表
今天想要把一张已经有的数据表中记录创建日期的一列设置成自动插入当前时间的模式,但是怎么改都报错:ERROR 1067 (42000): Invalid default value for 'UpdateTime' 1于是就从百度上搜集信息,得知想要这样功能的列,需要在建表的时候就设置好,不知道建表之后是不能修改还是我没有找到正确的方法,在这种情况下我尝试重新建表,然后成功得到我想要的具有自动记录插入时间和最后修改时间的功能的列,在这里记录一下,建表语句如下:create table ...转载 2022-02-22 10:11:16 · 393 阅读 · 0 评论 -
ubuntu 忘记mysql 密码解决方法
一段时间没有用mysql数据库,今天突然需要使用,结果忘记密码,google了下找到的解决方法,就顺便记录下,下次碰到就不需要这么麻烦了1、输入命令 cat /etc/mysql/debian.cnf2、使用账号 debian-sys-maint 账号登录mysql密码为 debian.cnf 中password 值(# password 值每个人的情况不一样,根据实际情况),在切换到mysql3、修改root账号密码(自己方便修改为123456了)update...转载 2022-02-22 10:08:26 · 2165 阅读 · 0 评论 -
mysql warning 在哪看_查看MySQL的warning
在执行sql语句,或者导入脚本时,经常会提示warnings,这些警告很容易被忽视,如何查看这些warnings呢?使用show warnings;命令很简明,一查看发现一般的警告是这样的Warning | 1265 | Data truncated for column '刊名' at row 1265//警告是字段长度不够,导入的是被系统自动裁剪后的数据=========================================================| War转载 2022-02-22 09:22:15 · 2148 阅读 · 0 评论 -
Mysql 8.0修改密码
1、mysql -u root -p '原来的密码' //进入数据库中2、show databases;3、use mysql;4、使用下面的语句修改密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'...转载 2022-02-22 09:21:08 · 4672 阅读 · 1 评论 -
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
之前在CentOS安装完MySQL修改默认密码时出现了如下错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 1原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,具体是与validate_password_policy的值有关,下图表明该值规则在这里插入图片描述如果想要查看MySQL完整的初始密码规则,登陆后执行以下命令SHOW VARIABLES ...转载 2022-02-22 09:20:04 · 344 阅读 · 0 评论 -
for update
一、for update定义for update 是一种行级锁,又叫排他锁。一旦用户对某个行施加了行级锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行。如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁。即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。只有当出现如下之一的条件,才会释放共享更新锁:1、执行提交(COMMIT)语句2...转载 2022-02-05 13:20:51 · 393 阅读 · 0 评论 -
MySQL乐观锁电商库存并发问题应用
一、案例说明银行两操作员(甲/乙)同时操作同一账户。两人同时读取一余额为 1000 元的账户,甲为该账户增加 100 元,乙同时为该账户扣除 50 元,甲先提交,乙后提交。最后实际账户余额为 1000-50=950,但本该为 1000+100-50=1050。这就是典型的并发问题。乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本(Version)记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” ..转载 2022-02-05 12:57:33 · 739 阅读 · 0 评论 -
什么是乐观锁,什么是悲观锁
一、并发控制当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中并发控制的任务,是确保多个事务同时增删改查同一数据时,不破坏事务的隔离性、一致性和数据库的统一性。实现并..转载 2022-02-05 12:42:11 · 11360 阅读 · 2 评论 -
mysql行锁+排他锁_Mysql:行锁 表锁 乐观锁 悲观锁 读锁 写锁
锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。行锁锁定整个行数据,开销大,加锁慢,会出现死锁。锁定粒度小,发生锁冲突的概率低,并发度高。表锁锁定整个表数据,开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突概率高,并发度低。悲观锁每次取数据时都认为别人会修改,所以每次取数据的时候都会上锁,这样别人想拿这个数据就会被.转载 2022-02-05 10:06:30 · 360 阅读 · 0 评论 -
事务的隔离性是指?
事务的隔离性是指?1.什么是事务?事务是以可控的方式对数据资源进行访问的一组操作。2.事务的其属性包括?原子性、一致性、隔离性和持久性,也就是常说的ACID。3.隔离性如何理解?隔离性是针对数据资源的并发访问,规定了各个事务之间相互影响的程度。事实上,事务的隔离性可以分为4种类型的隔离级别:Read Uncommitted,Read Committed, Repeatable Read和Serilization。这4个类型的隔离级别在应对数据资源并发访问可能出现的问题时的要求不一样。数据资..转载 2022-02-05 10:01:26 · 3114 阅读 · 0 评论 -
innodb引擎的4
一:插入缓冲二:二次写三:自适应哈希四:预读1.插入缓冲(insert buffer)插入缓冲(Insert Buffer/Change Buffer):提升插入性能,change buffering是insert buffer的加强,insertbuffer只针对insert有效,change buffering对insert、delete、update(delete+insert)、purge都有效只对于非聚集索引(非唯一)的插入和更新有效,对于每一次的插入不是写到索引...转载 2022-02-02 12:45:19 · 80 阅读 · 0 评论 -
MYSQL中数据类型介绍
一、MySQL的数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB日期类型:Date、DateTime、TimeStamp、Time、Year其他数据类型:B..转载 2022-01-19 11:43:49 · 283 阅读 · 0 评论 -
Mysql 如何设置字段自动获取当前时间
应用场景:1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;2、在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录修改时间;实现方式:1、将字段类型设为 TIMESTAMP2、将默认值设为 CURRENT_TIMESTAMP举例应用:1、MySQL 脚本实现用例--添加CreateTime 设置默认时间CURRENT_TIM...转载 2022-01-19 11:42:26 · 2012 阅读 · 0 评论 -
mysql删除外键
1、表删除错误(1)错误描述删除表时,使用了正确的语法DROP TABLE Course;,可是就是无法删除,还报错,报错信息如下:[Err] 3730 - Cannot drop table 'course' referenced by a foreign key constraint 'fk_teach_course' on table 'teach'.,主要原因是因为有外键。(2)解决方法方法一:关闭外键检查再删除,但是也别忘了删除后开启外键检查哦,但是我觉得这方法有点危险。其他表中外键.转载 2022-01-19 08:52:01 · 3787 阅读 · 0 评论 -
mysql 查询时间戳格式化 和thinkphp查询时间戳转换
我在网上看了好多写的,都差不多,甚至好多都是一个人写的被别人转载啥的,哎我写一个比较简单的1、mysql语句格式化时间戳select id,name,FROM_UNIXTIME(time,'%Y-%m-%d %H:%i:%s') as addtime from testtable where totaltime != '';//time是时间戳字段,查出来之后是格式化的数据 ,重命名为 addtime 显示结果我当时没想到啊,查询的时候可以把时间格式变成时间戳...转载 2022-01-08 15:45:16 · 696 阅读 · 0 评论 -
yii2.0 mysql 函数的使用
use yii\db\Expression;$arQuery = self::find() ->select(['*', new Expression('count(*) as count'), new Expression('FROM_UNIXTIME(create_time,"%Y年%m月%d日") as day')]);$arQuery->where($where);return $arQuery->orderBy('count desc')-...转载 2022-01-07 14:08:13 · 383 阅读 · 0 评论 -
在MySQL中创建表时在表中设置AUTO_INCREMENT?
让我们首先创建一个表。我们在创建表时使用了AUTO_INCREMENT来设置StudentId的自动增量-mysql>createtableDemoTable->(->StudentIdintNOTNULLAUTO_INCREMENT,->StudentFirstNamevarchar(100),->StudentLastNamevarchar(100),->StudentAgeint,...转载 2021-12-29 20:25:20 · 2486 阅读 · 0 评论 -
mysql设置root用户密码
5、修改密码,网上很多文章都无法修改root密码SET PASSWORD FOR 'root'@'localhost' = 'root';原创 2021-12-24 20:28:59 · 602 阅读 · 0 评论 -
Mysql中设置默认时间为当前值
1、直接在创建表时添加该列并声明默认值,如下:CREATE TABLE `table1` ( `id` int(11) NOT NULL, `createtime` timestamp NULL default CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8;如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上CURRENT_TIMESTAMP,如下图:2、在现有表中添加新列ALTE..转载 2021-12-20 15:08:02 · 3462 阅读 · 0 评论 -
如何在Firewalld中打开特定IP地址的端口?
如何允许私有网络中的特定IP地址的流量,或者通过firewalld允许特定私有网络的流量,进入Red Hat Enterprise Linux(RHEL)或CentOS服务器上的特定端口或服务?在这篇短文中,您将学习如何为运行firewalld防火墙的RHEL或CentOS服务器中的特定IP地址或网络范围打开一个端口。最合适的解决方法是使用firewalld。因此,您需要创建一个新的区域,以容纳新的配置(或者您可以使用任何可用的安全默认区域)。首先创建一个适当的区域名称(在我们的例子中,我们使用m..转载 2021-12-11 11:31:43 · 2061 阅读 · 0 评论 -
mysql导入报错 [Err] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
从本机mysql导出备份到服务器上mysql导入报错:[Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'搞死了,一整个下午 baidu上并没有什么解决方式,自己综合n+1片文章摸出来查了100遍数据库字符集,对比两边数据库是一摸一样的(起初不一样也通过navicat,workbench改成一致的了,通过以下命令可以查出字符集即改字符集:show variables like 'character%';set characte..转载 2021-12-10 16:47:43 · 580 阅读 · 0 评论 -
centos7.4安装Mysql5.6
环境Centos7.4工具Xshell(远程终端模拟) FileZilla(给linux传输文件)准备工作1、 卸载MariaDB注意:一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。rpm -qa | grep -i mariadb //查看有没有安装mariadb rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 //如果有..转载 2021-12-08 08:19:23 · 204 阅读 · 0 评论 -
libncurses.so.5()(64bit) is needed by MySQL-client-5.6.47-1.el6.x86_64以及 libtinfo.so.5()(64bit) is n
libncurses.so.5()(64bit) is needed by MySQL-client-5.6.47-1.el6.x86_64以及 libtinfo.so.5()(64bit) is needed by MySQL-client-5.6.47-1.el6.x86_64的解决今天在安装mysql是遇到了问题尝试了许多方法,最终找到了可以可靠解决这个问题的方法yum install libncurses*yum install libtinfo*##1执行之后再安装就没有问...转载 2021-12-08 08:15:15 · 1082 阅读 · 0 评论 -
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement,错误解决
1.登录mysqlmysql -uroot -p2.修改密码SET PASSWORD = PASSWORD('xxxxxx');3.修改权限grant all PRIVILEGES on test_db.* to root@'192.168.1.101' identified by '123456';test_db:为所要授权的数据库,root为用户,192.168.1.101为报错中的ip,123456位设置的密码。————————————————版权声明:本文为CSDN博主.转载 2021-12-08 08:14:05 · 366 阅读 · 0 评论 -
centos关闭防火墙命令是什么
centos关闭防火墙命令:1、临时关闭,代码为【systemctl stop firewalld】;2、禁止开机启动,代码为【systemctl disable firewalld】。本文操作环境:Windows7系统,centos6&¢os7版本,Dell G3电脑。centos关闭防火墙命令:CentOS6关闭防火墙使用以下命令,1234//临时关闭service iptables stop//禁止开机启动chkconfig iptables offCentOS7中若.转载 2021-12-08 08:12:46 · 8195 阅读 · 0 评论 -
配置mysql允许远程连接的方法
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。一、修改/etc/mysql/my.conf找到bind-address = 127.0.0.1这一行改为bind-address = 0.0.0.0即可二、为需要远程登录的用户赋予权限1、新建用户远程连接mysql数据库grant all on *.* to admin@'%' identified by '123456' with grant option;flush p...转载 2021-12-08 08:11:37 · 1816 阅读 · 0 评论 -
MySQL启动报错: Failed to start LSB: start and stop MySQL.
MySQL启动报错: Failed to start LSB: start and stop MySQL.与连接而数据库报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)今天在配置部署一台MySQL服务器,安装成功后,自动启动了 mysql服务,此时默认的mysql的data是在/var/lib/mysql下的,我想把他改成/mysql/mys.转载 2021-12-08 08:10:09 · 2480 阅读 · 0 评论 -
mysql 查看当前使用的配置文件my.cnf的方法
my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的。使用locate my.cnf命令可以列出所有的my.cnf文件命令locate my.cnf输出/usr/local/Cellar/mysql/5.6.24/my.cnf/usr/local/Cellar/mysql/5.6.24/mysql-test/include/default_my.cnf/usr/.转载 2021-12-08 08:08:11 · 2743 阅读 · 0 评论 -
mysql 5.6创建新用户并授权指定数据库相应权限
一、环境Centos 6.9Mysql 5.6.40二、步骤1、使用root用户登陆mysql 1 2 3 mysql -uroot -p 输入密码: 2、创建新用户 1 CREATE USER'user'@'%'IDENTIFIED BY'123456'; 1 2 3 '%'- 所有情况都能访问 ‘lo...转载 2021-12-08 08:07:14 · 2202 阅读 · 0 评论 -
mysql远程登陆
mysql登录方式有两种,一种是本机登录,一种是远程登录。这两种登录方式在mysql数据库的user表中都有体现。由于我们不可能总是本地登录,因此需要设置远程登陆。但是mysql默认不支持远程登陆,所以需要设置一波。1. 登录数据库。2. 切换到mysql数据库。3. 查看主机和用户对应情况,其实就是查看mysql数据库的user表中的部分信息。4. 此时,针对远程用户,我们有三种授权方式:1) 授权法(推荐使用)* 授权给所有ipmysql&g...转载 2021-12-07 21:27:36 · 7827 阅读 · 0 评论 -
mysql 从一张表查数据并插入另一张表
INSERT INTO table1 (table1_field1,table1_field2,...) select table2_filed1,table2_field2,... from table2 where condition1 and condition2 ...;//一张表符合条件的数据插入另一张表对应字段中insert into shelve_goods_info(product_id,`name`,image,original_amount,amount,spec_id,sp..转载 2021-11-29 09:51:56 · 3570 阅读 · 1 评论 -
MySQL之ORDER BY 详细解析
1 概述MySQL有两种方式可以实现ORDER BY: 1.通过索引扫描生成有序的结果 2.使用文件排序(filesort) 围绕着这两种排序方式,我们试着理解一下ORDER BY的执行过程以及回答一些常见的问题(下文仅讨论InnoDB存储引擎)。2 索引扫描排序和文件排序(filesort)简介我们知道InnoDB存储引擎以B+树作为索引的底层实现,B+树的叶子节点存储着所有数据页而内部节点不存放数据信息,并且所有叶子节点形成一个**(双向)链表**。举个例...转载 2021-12-06 16:30:41 · 2722 阅读 · 1 评论 -
使用MySQLWorkBench绘制ER图
数据库设计工具MySQLWorkBench· 该工具为MySQL官方提供地址:http://dev.mysql.com/downloads/workbench/小伙伴们注意按自己的操作系统选择下载版本。· 注意事项:安装后将环境语言配置成简体中文,否则中文乱码工作步骤新建模型后,会进入此页面。1./2.切换数据库表设计与ER图。3. 创建/管理ER图4. 创建/管理表结构1. 表名,[]内的中文为临时注释。命名规约:t_表所属业务模块_...转载 2021-11-28 12:48:44 · 3193 阅读 · 0 评论 -
Ubuntu16.04上安装MySQL(详细过程)
Ubuntu16.04上安装MySQL(详细过程)Runningluffy 2019-08-09 20:04:29 53962 收藏 214分类专栏: 技术小白GO 文章标签: Ubuntu16 Mysql安装版权技术小白GO专栏收录该内容16 篇文章0 订阅订阅专栏一、安装MySQL1、使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:$ sudo apt-get update #更新软件源$ sudo apt-get install m...原创 2021-11-28 12:34:54 · 383 阅读 · 0 评论 -
mysql 之 mysqldump导出表结构/表结构和数据/压缩备份
Tips:面试小技巧 组合索引的最左优先原则有一组合索引KEY(a, b, c)问:SELECT FROM WHERE a = ? AND b = ?; 和 SELECT * FROM WHERE b = ? AND c = ?; 两条语句中,那一条会用到索引?答:第一条会用到索引。组合索引会遵循最左优先原则,在创建a,b,c组合索引时,会创建KEY(a), KEY(a, b)和KEY(a, b, c)三个索引。三个索引中,即,只有用到a, ab, abc时会用到索引,bc是不会用到的。1...转载 2021-11-26 21:31:10 · 461 阅读 · 0 评论