![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 55
大鸡腿同学
SoftRpc contribuer; 21年拿到阿里淘系口头offer; 目前在某公司架构组搬砖,多多指教~
展开
-
Mysql死锁学习篇--X锁,S锁
文章目录前言X锁,S锁表锁,行锁死锁死锁处理参考文章前言无论是面试还是现实开发都有遇到过死锁,但是一直对死锁问题没有更加深入的了解,今天就一点点总结下~X锁,S锁X锁:排它锁,就是拿到了其他人不能拿到其他的锁S锁:共享锁,其他人还是能拿到S锁,但是不能拿到X锁表锁,行锁MyISAM支持表锁,Innodb支持表锁跟行锁表锁:开销比较小,加锁快,不会造成死锁,但是并发小行锁:开销大,加锁慢,会造成死锁,但是并发比较大死锁线上场景:RR级别,一个在批量插入,另一个在进行根据特定字段的更新,当原创 2021-07-30 17:24:10 · 1181 阅读 · 0 评论 -
MySQL应对高tps优化
一般使用innodb引擎做事务管理,死锁也是经常见到的,比如秒杀场景,对一个共同的物品进行减库存,此时我们可以关闭mysql的死锁检测机制,减少单行整体服务的时间。既然关闭了死锁检测机制,我们需要减少锁的等待时间。不过不适合死锁过多的情景,我们可以通过程序来减少死锁的存在。其次还有mysql为了事务的安全,会将提交的事务刷新到磁盘,如果改变刷盘的策略,也可以提高mysql应对高并发的情况,但是...转载 2019-01-27 14:46:32 · 3909 阅读 · 0 评论 -
mysql explain select_type
所有类型http://www.cnblogs.com/danhuangpai/p/8475458.html特别关注 DEPENDENT SUBQUERY ,会严重消耗性能这个对应的是查询中嵌套子查询,那么如何优化呢举个例子:EXPLAIN UPDATE `tb_gqyjy_appointment_record_info` SET update_time ="2018-11-08...原创 2018-11-09 16:58:35 · 1517 阅读 · 0 评论 -
mysql 充电
1.if()函数,if(判断条件,是的话输出这个,否的话输出这个)格式:IF(Condition,A,B)意义:当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。2.@rank编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间...原创 2018-07-21 20:48:42 · 145 阅读 · 0 评论 -
mysql 联合查询
内联,左联,右联MySQL联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处:T1表结构(用户名,密码)userid(int) usernamevarchar(20) passwordvarchar(20) 1 jack jackpwd 2 owen owenpwd T2表结构(用户名,密码) userid(int) ji...转载 2018-06-10 10:39:36 · 553 阅读 · 0 评论 -
mysql varchar最大长度多少
最近去面试问了一个问题,mysql一行有长度限制的,如果太长你如何处理,所以回来查看了一下mysql一行最长不超过65535字节,如果采用gbk,一个中文2个字节,如果是utf-8,一个中文是3个字节。一般是utf-8,那么varchar最大长度不能超过21845。刚刚查下博客最长长度也是2w字,赶脚是这个原因。所以现在回答面试问题,业务中有什么东西会超过2w字的吗,除了博客这些长篇章的...原创 2018-06-08 13:14:44 · 6390 阅读 · 2 评论 -
mysql性能调优(一)
1.开启慢查询,记录查询速度慢的语句my.inislow_query_log = ONslow_query_log_file = C:/Program Files/MySQL/MySQL Server 5.5/log/mysql_slow_querys.log long_query_time = 2 然后在mysql的cmd里面输入show variables like '%slow_quer...转载 2018-05-24 11:14:19 · 854 阅读 · 0 评论 -
mysql并发死锁优化
1.使用一般使用innodb引擎进行事务回滚2.如果需要修改表的结构,可以在人流量少的情况下进行操作,因为DML(增删改查)操作都会产生元数据锁,会卡死。3.解决死锁:在命令行输入show engine innodb statusG可以显示最近死锁的信息,然后加以解决其次可以设置锁等待时间,这个参数innodb_lock_wait_timeout增加锁等待时间,即增大下面配置项参数值,单位为秒(s...转载 2018-05-15 21:01:00 · 1136 阅读 · 0 评论 -
mysql随意插入数据
1.一般我们测试时数据太少了,如果手动输入的话又太麻烦,我们可以使用mysql的随机插入进行操作2.创建用户表create table food(foodid int,foodname varchar(25),price varchar(25));3.创建存储过程DROP PROCEDURE IF EXISTS add_user; DELIMITER // create PROCEDU...转载 2018-05-13 20:22:56 · 451 阅读 · 0 评论 -
mysql外键
1.mysqlCREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY (Id_O),FOREIGN KEY (Id_P) REFERENCES Persons(Id_P))2.外键的作用是和其他表关联起来,防止非法插入...原创 2018-05-18 13:23:05 · 201 阅读 · 0 评论 -
mysql索引
索引:方便查询,但是占内存包括:唯一索引,主键,全文索引下面举全文索引例子创建全文索引CREATE TABLE `xx` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` varchar(100) NOT NULL COMMENT '工商名', `b` varchar(100) DEFAULT NULL COMMENT '品牌名', `c` v...转载 2018-04-08 14:42:28 · 126 阅读 · 0 评论 -
mysql主从同步
环境:操作系统:ubuntumysql下载安装:1. sudo apt-get install mysql-server2. apt-get install mysql-client3. sudo apt-get install libmysqlclient-devmysql主机,从的都要配置的东西:进入my.cnf但是ubuntu是在/etc/mysql/mysql.conf.d/my...转载 2017-09-18 22:54:27 · 294 阅读 · 0 评论 -
Mycat进阶总结(一)
1.读写分离一般是程序实现的,但是有缺点是如果master节点连接不上,所以都gg了。但是数据库实现读写分离就不同了,程序员不用在意数据库如何实现,只需要调用数据库中间件的地址,然后由中间件进行分配2.集群组成如下:角色 主机名 主机IPmaster mysql-server1 192.16...转载 2018-03-15 15:15:43 · 597 阅读 · 0 评论 -
Linux Mycat入门篇
转自https://www.cnblogs.com/ivictor/p/5111495.htmlMyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。这篇文章主要是MyCAT的入门部署。一、安装java因Mycat是用java开发的,所以需要在实验环境下安装java,官方建议jdk1.7及...转载 2018-03-14 17:29:38 · 488 阅读 · 0 评论 -
mysql悲观锁,高并发
1.高并发的时候有2种处理1)后端进行线程安全处理,synchrnoized,还有其他不同粒度的锁2)在数据库设置锁,当你读的时候,不允许其他人修改。可以用mysql的悲观锁2.悲观锁select * from 表名 for updatefor update很重要,就是如果你查询这个事务没有结束前,别人不能去修改它的内容。3. 那怎么自己实践呢?打开2个mysql 命令转载 2018-02-07 20:14:58 · 523 阅读 · 0 评论 -
mysql cluster第一次尝试
1.本人一开始是想用主从一致来作为数据库基础的,后来发现主从一致,如果他们之间的通讯断了,对整个系统来说是致命的。之前的方案是数据库读写分离。现在的方案是数据库集群,其实他们之间的联系也是主从一致,但是数量比较多,而且当其中一个断了联系之后,可以在下次连接的时候进行恢复。然后我选择的是mysql cluster2.期间参照很多博客:http://blog.csdn.net/l102838680转载 2018-02-06 22:01:33 · 198 阅读 · 0 评论 -
mysql导入导出sql
导出在cmd执行mysqldump mysql -u帐号名称 -p密码 数据库名称>导出的位置.sqle.g mysqldump mysql -uroot -pxxxx >C:\Users\yanshen\Desktop\xx.sql然后可以在这个路径看见xx.sql 导入1.cmd执行mysql -u账号 -p密码 数据库名称2.cmd进入mysql之后,sour转载 2018-01-29 15:09:37 · 125 阅读 · 0 评论 -
主从数据库一致,远程mysql连接错误解决10083,还有111
1.读写分离是后端框架实现的,就是写一个数据库,读从服务器的数据库。优点:减少写服务器的压力(insert,update),使得读的更快然后写和读的服务器数据库需要配置主从一致2.首先至少可以互相ping对方ip地址吧,保证网络ok的。不行的话,是防火墙问题,可以先关了,不然就开放端口。ping的端口自己百度,mysql是3306再然后,用cmd互相连接对方mysql,注意互相,m转载 2018-01-29 14:55:07 · 1948 阅读 · 0 评论 -
mysql ENUM字段和set字段
1.mysql里面没有数组,只有类似enum和set的字段2. enum和set都是在预定的集合里面输入,如果超出预定的会显示输入错误。set和enum不同的是:set输入非法的时候会插入空的数据或者原来设置的值,具体看下面例子。3.enum例子:看见上面神奇的地方没有,我限制是,“one”,"two",结果输入1,2都是合法的,3就out了4.set例子:有没原创 2018-01-21 14:51:57 · 532 阅读 · 0 评论