mysql
我知道你是高手
这个作者很懒,什么都没留下…
展开
-
mysql索引长度
在utf8编码方式下,一个字符占3个字节。 如果索引字段可以为null,MySQL会使用1个字节标识。 如果索引字段的类型长度可变,MySQL会使用2个字节标识。 如果索引字段的类型长度可变,并且可以为null,MySQL会使用1+2=3个字节标识...原创 2021-09-06 15:33:42 · 651 阅读 · 0 评论 -
sql 查询结果增加一列,列名固定,值也固定(mysql可行,其他未知)
在查询结果中新增列名和值都固定的列:SELECT '1' as "settlein_flag", '1' as "trans_stat" , a.shop_id from shop_info a LEFT JOIN card_base_info b on a.shop_cust_id = b.user_cust_id where b.stat_flag = 1;...原创 2019-11-19 15:17:04 · 1549 阅读 · 0 评论 -
left join on后面 加条件和where后面加条件的区别
student表和grade表简单提一个需求是:我需要统计所有有成绩的学生信息。项目遇到那个问题比这个复杂,但是最终需要筛选的条件和这个大致相同,这里就举个栗子。这里分析一下,既然是学生信息,那么,肯定就是以student为主表,关联的为grade表,写出下面条件。SELECT stu.*FROM student stu LEFT JOIN grade g...原创 2019-11-19 15:02:45 · 1002 阅读 · 1 评论 -
Mysql的row_format(fixed与dynamic)
在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dyna...原创 2019-09-06 17:41:56 · 6399 阅读 · 0 评论 -
死锁,更新锁,共享锁,排它锁,意向锁,乐观锁,悲观锁等名词解释及案例详解
这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推几个名词:(1)脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6,用户B把值改为2,用户A读到的值仍为6。(2)丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用...转载 2019-04-04 22:06:31 · 509 阅读 · 0 评论 -
MySQL性能优化总结
一、MySQL的主要适用场景1、Web网站系统2、日志记录系统3、数据仓库系统4、嵌入式系统二、MySQL架构图:三、MySQL存储引擎概述1)MyISAM存储引擎MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表...原创 2019-03-23 19:37:19 · 188 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主...原创 2019-03-23 19:34:11 · 141 阅读 · 0 评论 -
centos中mysql5.1忘记root密码
首先输入mysql,这样会进入命令行进入mysql库:删除user表数据,并重新创建用户:然后退出重新登录就OK了原创 2019-03-15 22:57:45 · 761 阅读 · 0 评论 -
MySQL的并发控制与加锁分析
本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQL的加锁进行了一个详细的分析。本文的总结参考了何登成前辈的博客,并且在前辈总结的基础上,进行了一...转载 2018-12-19 00:55:30 · 110 阅读 · 0 评论 -
执行mysql update 语句设置navicat不自动提交
set autocommit = 0; //1是自动提交update innodb_lock set b = '1234' where a > 1 and a < 6; //这里写update更新语句commit; //或者rollback;原创 2018-12-19 00:25:34 · 9407 阅读 · 0 评论 -
Mysql的间隙锁及产生的原因
什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。危害因为Query执行过程中通过范围查找的话,他会锁定整个范围内所有的索引键值,即使这个键值并不存在。间隙锁有一个比较致命...原创 2018-12-19 00:19:16 · 1452 阅读 · 0 评论 -
MySQL中select * for update锁表的问题
MySQL中select * for update锁表的问题由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行TableLock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指定主键,并且...转载 2018-11-25 21:03:55 · 451 阅读 · 0 评论 -
mysql的行列转换
数据样本:create table tx( id int primary key, c1 char(2), c2 char(2), c3 int ); insert into tx values (1 ,’A1’,’B1’,9), (2 ,’A2’,’B1’,7), (3 ,’A3’,’B1’,4), (4 ,’A4’,’B1’,2), (5 ,’A1’,’B2’,2)转载 2017-09-19 11:56:50 · 459 阅读 · 0 评论