数据库
文章平均质量分 57
aoxida
这个作者很懒,什么都没留下…
展开
-
MySQL LIMIT 理解
MYSQL LIMIT原创 2022-03-29 11:57:05 · 4010 阅读 · 0 评论 -
MySQL的聚簇索引和非聚簇索引
MySQL常见的存储引擎有InnoDB和MyISAM。InnoDB中,(一级索引)数据和索引是存储在同一个文件(数据文件.idb),所以InnoDB主键索引结构中,既存储了数据还存储了主键值,就是聚簇索引。一般聚簇索引、一级索引、主键索引可以理解为一个东西。聚簇索引的叶子节点即是数据节点,可直接关联到行数据。每张表都有且仅有一个聚簇索引,会按照主键、唯一索引、生成rowid的顺序,采纳当做聚簇索引。聚簇索引是B+树结构,数据都是有序存储...原创 2021-12-03 16:41:02 · 947 阅读 · 0 评论 -
SQL优化方法及实例
很多朋友在做数据分析时,分析两分钟,跑数两小时?在使用SQL过程中不仅要关注数据结果,同样要注意SQL语句的执行效率。本文涉及三部分,篇幅较长,建议收藏后翻看: SQL介绍 SQL优化方法 SQL优化实例 1、MySQL的基本架构1)MySQL的基础架构图左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成转载 2021-08-10 16:47:31 · 1862 阅读 · 0 评论 -
Redis缓存穿透,缓存击穿,缓存雪崩
缓存穿透key对应的缓存不存在,此时程序会触发读取数据源,如果并发量较大,可能会持续亚到DB。解决方案:如果发现数据库不存在记录,可以把空结果缓存到Redis,这样就减少了DB的压力。缓存击穿 key对应的缓存已过期,此时如果大量并发请求,系统发现缓存过期,会重新从DB中加载数据到Redis,此时可能会瞬间把DB压垮。(感觉这个挺极端的场景????)解决方案:方案1:从DB中加载缓存的时候,使用分布式锁,只允许一个线程加载缓存; ...原创 2021-07-16 16:35:39 · 120 阅读 · 0 评论 -
雪花算法(SnowFlake)
本文不介绍原理,只介绍优缺点。据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子组成。在雪花形成过程中,会形成不同的结构分支,所以说大自然中不存在两片完全一样的雪花,每一片雪花都拥有自己漂亮独特的形状。雪花算法表示生成的id如雪花般独一无二。优点在Java中生成的id是long类型的有序整数,相较uuid作为数据库的主键,更易用于索引搜索和排序,对数据库(MySQL B-Tree)友好。 所有id是根据时间递增的,无法根据其计算出业务量,避免被爬虫遍历数据。...原创 2021-07-02 14:57:28 · 1638 阅读 · 0 评论 -
浅谈聚簇索引和非聚簇索引的区别
聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置在innodb中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引。辅助索引叶子节点存储的不再是行的物理位置,而是主键值,辅助索引访问数据总是需要二次查找。InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B.转载 2021-06-23 10:33:10 · 704 阅读 · 0 评论 -
mybatis中 数据库sql语句中#和$的区别
# 预处理时,处理为占位符 ?,作为参数传入$ 单纯的字符串替换,可能会被sql注入原创 2020-08-20 14:57:38 · 216 阅读 · 0 评论 -
MySQL中varchar最大长度
4.0以下版本,UTF8汉字,一个汉字3个字节5.0以上版本,和字母数字一样,存储的个数一样,最大存储65535字节原创 2020-06-09 10:11:02 · 309 阅读 · 0 评论 -
数据库索引的实现原理
说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增转载 2016-03-30 17:36:15 · 606 阅读 · 1 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会转载 2015-03-09 10:44:27 · 692 阅读 · 0 评论 -
数据库Oracle DB2 MySQL 分页
DB2分页查询和Oracle、SQL中的分页查询语句写法都不太一样,下面就为您介绍DB2分页查询和其他数据库中分页查询的区别,希望对您有所帮助。Oracle分页查询写法:一:Oracleselect * from (select rownum,name from table where rownum =endIndex ) where rownum > startIndex转载 2015-02-06 15:06:28 · 880 阅读 · 0 评论 -
数据库事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Re转载 2015-01-15 09:25:50 · 454 阅读 · 0 评论 -
sql注入攻击详解(三)sql注入解决办法
在前面的博客中,我们详细介绍了:sql注入攻击详解(一)sql注入原理详解sql注入攻击详解(二)sql注入过程详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法。怎么来解决和防范sql注入,由于本人主要是搞java web开发的小程序员,所以这里我只讲一下有关于java web的防止办法。其实对于其他的,思路基本相似转载 2013-04-07 16:37:59 · 2678 阅读 · 0 评论 -
sql注入攻击详解(二)sql注入过程详解
在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用,参考文章太多,没有注意出处,请原作者见谅) SQL注入攻击的总体思路是:1.发现SQL注入位置;2.判断后台数据库类型;3.确定XP_CMDSHELL可执行情况4.发转载 2013-04-07 16:36:52 · 2166 阅读 · 0 评论 -
sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql注入漏洞就是一个。作为一个菜鸟小程序员,我对sql注入的东西了解的也不深入,所以抽出时间专门学习了一下。现在把学习成果分享给大家,希望可以帮助大家学习。下面我们就来看一下。一、什么是sql注入呢? 所转载 2013-04-07 16:36:07 · 1654 阅读 · 0 评论 -
sql server 2000复制表
我在SQL SERVER 2000中有现个数据库DATAHR及DEMO,它们的结构是一样,其它有一个表名为:GBITEM.现在我想将DEMO数据库的表名:GBITEM的全部内容复制到DATAHR数据库的表名为:GBITEM中。请问此T-SQL语句应该怎么写? 谢谢高人指点! 如果目的表已经存在:insert into DATAHR.DBO.GBITEMselect * from D原创 2012-03-02 10:18:07 · 1112 阅读 · 0 评论