Database
文章平均质量分 86
程序员小2
全网同名,公众号、领资料
展开
-
数据库 delete 表数据后,磁盘空间为什么还是被一直占用?
delete 删除数据时,其实对应的数据行并不是真正的删除,仅仅是将其标记成可复用的状态,所以表空间不会变小。可以重建表的方式,快速将delete数据后的表变小(OPTIMIZE TABLE 或ALTER TABLE),在 5.6 版本后,创建表已经支持 Online 的操作,但最好是在业务低峰时使用。原创 2023-02-12 21:01:32 · 976 阅读 · 2 评论 -
【教3妹学mysql】一条慢sql如何排查优化
1、先设置慢查询(my.ini或数据库命令)2、分析慢查询日志3、定位低效率sql(show processlist)4、explain分析执行计划(是否索引失效,用到索引没,用了哪些)5、优化(索引+sql语句+数据库结构优化+优化器优化+架构优化)原创 2022-09-03 17:12:53 · 1749 阅读 · 1 评论 -
【教3妹学mysql】联合索引问题优化
2哥,你有没有看到新闻,上海地铁6号线有女子穿内衣在地铁内拍照。:什么?还有这事,我还经常坐6号线呢,我怎么就没遇到呢。:你得了吧,这种不雅的低俗行为,应该坚决抵制。:是的,我也就是开个玩笑,3妹别激动。这种行为明显扰乱了公共秩序。:嗯!!!话说2哥你在干嘛呢。:在学习Mysql, 联合索引问题优化。:我也要一起学习下~ 教我教我。原创 2022-09-03 16:06:56 · 863 阅读 · 1 评论 -
【教3妹学mysql】复杂的深度分页问题优化
2哥,你有没有看到新闻,上海地铁6号线有女子穿内衣在地铁内拍照。:什么?还有这事,我还经常坐6号线呢,我怎么就没遇到呢。:你得了吧,这种不雅的低俗行为,应该坚决抵制。:是的,我也就是开个玩笑,3妹别激动。这种行为明显扰乱了公共秩序。:嗯!!!话说2哥你在干嘛呢。:在学习Mysql, 遇到了一个深度分页的问题,再想如何解决。:我也要一起学习下~ 教我教我。原创 2022-09-03 15:08:29 · 638 阅读 · 1 评论 -
SQL语法手册
本文针对关系型数据库的一般语法。限于篇幅,本文侧重说明用法,不会展开讲解特性、原理。本文内容包括基本概念、增删改查、子查询、连接和组合、函数、排序和分组、数据定义、事务处理、权限管理等等。本文攻击 1.2W 字,可以收藏转发。一、基本概念数据库术语数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) :某种特定类型数据的结构化清单。模式(schema):关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数原创 2021-04-14 08:59:12 · 637 阅读 · 0 评论 -
mysql字段属性尽量not null
除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL。这看起来好像有点争议,请往下看。1、首先,我们要搞清楚空值("") 和 “NULL” 的概念:1)空值是不占用空间的 2)MySQL中的NULL其实是占用空间的所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。2、其次,在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用原创 2021-04-13 12:48:22 · 276 阅读 · 0 评论 -
为什么大家都说SELECT * 效率低
无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。废话不多说,本文带你深入了解一下"SELECT * "效率低的原因及场景。本文很干!请自备茶水,没时间看记得先收藏 – 来自一位被技术经理毒打多年的程序员的忠告一、效率低的原因先看一下最新《阿里java开发手册(泰山版)》中 MySQL 部分描述:4 - 1. 【强制】在表查询中,一律不要使用 * 作为查询的字段列表原创 2020-06-30 12:45:51 · 1200 阅读 · 0 评论 -
深入理解 MySQL 索引底层原理
作者:junshili一步一步推导出 Mysql 索引的底层数据结构。Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效...转载 2020-03-16 21:24:29 · 340 阅读 · 0 评论 -
【leetcode】626. Exchange Seats
题目:Mary is a teacher in a middle school and she has a table seat storing students' names and their corresponding seat ids.The column id is continuous increment. Mary wants to change seats for ...原创 2018-12-08 17:25:36 · 2578 阅读 · 0 评论 -
mySql update容易出错的一个地方
# UPDATE语句的正确语法示例UPDATEtbSETcol1=value1,col2=value2,col3=value3WHEREcol0=value0ANDcol5=value5;上例是正确的做法,不合理的UPDATE应该是什么样子的呢,是将SET后接的并列字段分隔符改为”AND”,注意这样写的话,MySQL并不会报错,还会执行成功,但是语义完全和”原创 2017-06-23 16:44:38 · 2358 阅读 · 0 评论 -
Oracle 关键字(保留字) 大全
Oracle 关键字(保留字) 大全其实这个东西可以在oracle 上输入一个sql语句就可以得到:select * from v$reserved_words order by keyword asc; //order 后边不是必须的,那只是个排序,使结果不至于杂乱无章,如果用的是PL/SQL的话的SQL window的话,在获得结果后,可以点击按钮,使得查询结果不分页,然后可以...原创 2017-05-19 20:45:02 · 34908 阅读 · 1 评论 -
分布式事务:二阶段提交与三阶段提交
一、二阶段提交算法描述 在分布式系统中,事务往往包含有多个参与者的活动,单个参与者上的活动是能够保证原子性的,而多个参与者之间原子性的保证则需要通过两阶段提交来实现,两阶段提交是分布式事务实现的关键。 很明显,两阶段提交保证了分布式事务的原子性,这些子事务要么都做,要么都不做。而数据库的一致性是由数据库的完整性约束实现的,持久性则是通过commit日志来实现的,不是由两阶段提交转载 2017-04-16 21:40:27 · 450 阅读 · 0 评论 -
like查询时索引优化
like'xxx' 或 'xxx%'这样写要用索引,而这样写like '%xxx'或'%xxx%'写不用索引。感觉就像组合索引一样,直接用索引第一个字段会走索引,而用索引第二个字段则不会走索引.1. like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。2. like keyword%原创 2017-04-16 21:24:47 · 1546 阅读 · 0 评论 -
数据库隔离级别 整理
一、隔离级别及含义事务隔离级别(transaction isolation levels):隔离级别就是对对事务并发控制的等级。ANSI/ ISO SQL将其分为串行化(SERIALIZABLE)、可重复读(REPEATABLE READ)、读已提交(READ COMMITED)、读未提交(READ UNCOMMITED)四个等级。为了实现隔离级别通常数据库采用锁(Lock)。一般在编程的时候原创 2017-04-16 21:06:28 · 1184 阅读 · 0 评论 -
oracle表空间表分区详解及oracle表分区查询使用方法
此文从以下几个方面来整理关于分区表的概念及操作:1.表空间及分区表的概念2.表分区的具体作用3.表分区的优缺点4.表分区的几种类型及操作方法5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。分区表: 当表中的数据量不断增大,查询数据的速度就转载 2017-02-05 09:36:08 · 1274 阅读 · 0 评论 -
ZooKeeper intruction
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的转载 2017-02-05 11:26:36 · 545 阅读 · 1 评论 -
复合索引的优点和注意事项
概念: 单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上; 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引); 复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引; 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引; 设计索引的一个重要原则就是能用窄索引不用宽索原创 2017-01-21 15:33:42 · 6768 阅读 · 5 评论 -
Oracle数据完整性和锁机制
本课内容属于Oracle高级课程范畴,内容略微偏向理论性,但是与数据库程序开发和管理、优化密切相关;另外本课的部分内容在前面章节已经涉及,请注意理论联系实际。事务 事务(Transaction)从 通讯的角度看:是用户定义的数据库操作序列,这些操作要么全做、要么全不做,是不可分割的一个工作单元。事务控制语句称为TCL,一般包括Commit和Rollback。 事务不是程序转载 2017-03-30 22:27:56 · 426 阅读 · 0 评论 -
阿里HBase超详实践总结 | 一文读懂大数据时代的结构化存储
前言时间回到2011年,Hadoop作为新生事物,在阿里巴巴已经玩得风生水起,上千台规模的”云梯”是当时国内名声显赫的计算平台。这一年,Hadoop的好兄弟HBase由毕玄大师带入淘宝,开启了它的阿里之旅。从最初的淘宝历史交易记录,到去年的支付宝消费记录存储在线历史存储统一;从蚂蚁安全风控的多年存储演进,到HBase、TT、Galaxy的大数据激情迭代;HBase在阿里经历过年轻的转载 2017-03-25 23:20:01 · 3498 阅读 · 0 评论 -
漫谈千亿级数据优化实践:数据倾斜
前言数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎。迈的过去,将会海阔天空!迈不过去,就要做好准备:很可能有几周甚至几月都要头疼于数据倾斜导致的各类诡异的问题。郑重声明:话题比较大,技术要求也比较高,笔者尽最大的能力来写出自己的理解,写的不对和不好的地方大家一起交流。有些例子不是特别严转载 2017-04-28 22:52:19 · 595 阅读 · 0 评论 -
如何在不停机的情况下,完成百万级数据跨表迁移
技术团队面临的困难总是相似的:在业务发展到一定的时候,他们总是不得不重新设计数据模型,以此来支持更加复杂的功能。在生产环境中,这可能意味着要迁移几百万条活跃的数据,以及重构数以千行计的代码。Stripe的用户希望我们提供的API要具备可用性和一致性。这意味着在做迁移时,我们必须非常小心:存储在我们系统中的数据要有非常准确的值,而且Stripe的服务必须时刻保证可用。在这篇文章中,我转载 2017-04-28 22:28:52 · 7393 阅读 · 0 评论 -
数据库索引的实现原理
强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向转载 2017-04-18 19:03:34 · 351 阅读 · 0 评论 -
聚集索引和非聚集索引整理
聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包原创 2017-04-16 17:14:22 · 1445 阅读 · 1 评论 -
数据库锁机制
1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。2 锁的种类共享锁(Shared lock)。例1:--------转载 2017-04-16 20:59:22 · 282 阅读 · 0 评论 -
SQL SERVER学习杂记
Database SQL Server目录随手记.1SQL EXEC 命令用法.3Sql_Case_When用法.6 随手记连接查询:Select a.name,b.password From Table_1 asa,Table_2 as b where a.ID=b.IDJoin 关键字查询涉及到表的分类,JOIN关键字左边的表叫左表,原创 2015-07-26 22:42:18 · 1392 阅读 · 0 评论