Java核心知识盘点(一)- 数据存储

时间:2021-11-18 01:12:34

MySQL 索引使用的注意事项

  1、索引的目的:在于提高查询效率,插入和更新的操作,数据库的操作是慢的,但是查询操作会非常快,索引可以对表中一个或多个字段进行加索引动作。

  2、索引的类型:

    1、唯一索引(unique):不可以出现相同的值,可以有null值

    2、普通索引(index):允许出现相同的索引内容

    3、主键索引(promary key):不允许出现相同的值

    4、全文索引(fulltext index):可以针对值中的某个单词

    5、组合索引:将多个字段建到一个索引里,列值的组合必须唯一

  3、索引缺点:

    1、虽然大大提高了查询速度,但也会降低更新表的速度。

    2、建立索引会占用磁盘空间的索引文件

    3、mysql一张表查询只能用到一个索引

    4、like ‘%aaa%’不会使用索引,而like ‘aaa%’可以使用索引

    5、不要在列上进行运算

说说反模式设计

每个程序员要注意的 9 种反模式

说说分库与分表设计

分表与分库使用场景以及设计方式

分库与分表带来的分布式困境与应对之策

服务端指南 数据存储篇 | MySQL(09) 分库与分表带来的分布式困境与应对之策

说说 SQL 优化之道

sql优化的几种方法

MySQL 遇到的死锁问题

  1、MySql有三级锁:页级、表级、行级

    1、页级:开锁和加锁时间临界于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间

    2、表锁:开销小,加锁快。不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

    3、行锁:开销大、加锁慢。会出现死锁;锁定粒度小,发生锁冲突的概率最小

  2、什么情况下会造成死锁

    两个或两个以上的进程在执行过程中因争夺资源而造成的一种互相等待的现象。在没有外力的情况下,他们将无法推进下去。因为表级锁不会产生死锁,因此解决死锁主要还是针最常用的InnoDB.

Java核心知识盘点(一)- 数据存储的更多相关文章

  1. Java核心知识盘点(二)- 缓存使用

    Redis有哪些数据类型 String.Hash.List.Set.ZSet String:字符串 Hash:哈希 Set:集合 List:列表 ZSet:有序集合 Redis内部结构 1.Redis ...

  2. Java核心知识盘点(三)- 框架篇-Spring

    Spring的两大核心特性:IOC.AOP IOC:控制反转.依赖注入,它并不是一种技术实现,而是一种思想.把一些相互依赖对象的创建.协调工作交给Spring容器来管理,每个对象只需要关注其自身的业务 ...

  3. 分布式之redis核心知识盘点?

    考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会setvalue和getvalue两个操作,对redis整体缺乏一个认知.又恰逢博主某个同事下周要去培训redis,所以博主斗胆以r ...

  4. Java基础知识盘点(二)- 集合篇

    List和Set区别 List和Set都是继承Collection接口 List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复 Set和List对比: Set:检索元素效率 ...

  5. 阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)

    由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点.覆盖了JVM.锁.并发.Java反射.Spring原理.微服务.Zooke ...

  6. 阿里 P8 高级架构师吐血总结的 《Java 核心知识整理&面试.pdf》| 免费分享

    最近在网上发现一份非常棒的 PDF 资料,据说是阿里 P8 级高级架构师吐血总结的, 其中内容覆盖很广,包括 Java 核心基础.Java 多线程.高并发.Spring.微服务.Netty 与 RPC ...

  7. ios 沙盒 NSCoding(相当于JAVA对象序列化) 归档 数据存储

    通过NSCoding能实现像JAVA一样能够实现对象的序列化,可以保存对象到文件里. NSCoding 跟其他存储方式略有不同,他可以存储对象 对象存储的条件是: 对象需要遵守 NSCoding 协议 ...

  8. Java基础知识盘点(三)- 线程篇

    创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子 ...

  9. Java基础知识盘点(一)- 基础篇

    基本功 面向对象特征 封装.继承.多态和抽象 1.封装:给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法,来改变它内部的数据. 在Java中,其访问权限有3种修饰符:publi ...

随机推荐

  1. PHP扩展下载指导

    http://pecl.php.net/package/ 相信很多人为了找PHP扩展包,很发愁. 其实可以去官网下载,还有各个版本选择,不必担心下载到了错误版本,浪费时间以及网站积分. 简单说下方法: ...

  2. xmpp SASL 定义

    SASL 定义 <摘抄自:xmpp_3920> [SASL]的 profiling 需求要求协议定义 供以下信息: 服务名:“xmpp” 初始序列:初始实体 供一个开放 XML 流头后,并 ...

  3. eclipse内置tomcat启动方法

    tomcat:run -Dmaven.tomcat.port=

  4. LruCache--远程图片获取与本地缓存

    Class Overview A cache that holds strong references to a limited number of values. Each time a value ...

  5. Cocos2d提供的字体&lpar;图文并茂&rpar;

    1.AppleGothic CCLabelTTF *myLabel = [CCLabelTTF labelWithString:@"AppleGothic" fontName:@& ...

  6. 用require&period;js封装原生js轮播图

    index.html页面: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...

  7. golang&colon;一个高性能低精度timer实现

    在go自带的timer实现中,采用的是通常的最小堆的方式,具体可以参见这里. 最小堆能够提供很好的定时精度,但是,在实际情况中,我们并不需要这样高精度的定时器,譬如对于一个连接,如果它在2分钟以内没有 ...

  8. django 视图模式

    一 视图 FBV --- function based view(基于函数视图) CBV --- class based view(基于类的视图函数) 二 请求方式 get post put/patc ...

  9. ubuntn中root密码设置和权限给予

    个人理解: 1.安装ubuntn,会首先要求有一个账号密码设置,比如我设置的:用户名irt,密码**,这是一个普通账户,此时,超级管理账户root密码是空的: 2.给root账户设置密码,大概步骤见下 ...

  10. MFC中的DLL、LIb文件的创建、使用

     动态链接库Dynamic-Linked Lib 的创建与使用 动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软 ...