-
数据库软件架构,到底要设计些什么?
所属栏目:[MySql教程] 日期:2019-07-31 热度:136
一、基本概念 概念一:单库 概念二:分片 分片解决数据量太大这一问题,也就是通常说的水平切分。 一旦引入分片,势必面临数据路由的新问题,数据到底要访问哪个库。路由规则通常有3种方法: (1)范围:range 优点:简单,容易扩展。 缺点:各库压力不均(新[详细]
-
超详细的设置Oracle用户永不被锁教程分享
所属栏目:[MySql教程] 日期:2019-07-31 热度:122
最近有个需求是需要对Oracle某个用户设置输错密码也不被锁,整体原理是:新建一个profile,设置密码错误次数不限制,然后把用户的概要文件(profile)设置为新建的这个profile,下面介绍下设置的过程。 一、默认profile 一般数据库默认是10次尝试失败后锁住[详细]
-
服务器性能优化的8种常用方法
所属栏目:[MySql教程] 日期:2019-07-31 热度:121
1.使用内存数据库 内存数据库,其实就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内[详细]
-
如何快速定位MySQL 的错误日志(Error Log)?
所属栏目:[MySql教程] 日期:2019-07-29 热度:98
日志文件是MySQL数据库的重要组成部分,包括有6种不同的日志文件: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 这些日志可以帮助我们定位 mysqld 内部发生的事件,数据库性能故障,[详细]
-
如何避免回表查询?什么是索引覆盖? | 1分钟MySQL优化系列
所属栏目:[MySql教程] 日期:2019-07-29 热度:169
《迅猛定位低效SQL?》留了一个尾巴: selectid,namewherename='shenjian' selectid,name,sexwherename='shenjian' 多查询了一个属性,为何检索过程完全不同? 什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL? 这[详细]
-
数据库集群方案及Oracle RAC架构分析
所属栏目:[MySql教程] 日期:2019-07-29 热度:69
应对业务量的不断增加场景通常有两个大方向,一种是纵向扩展,也就是增加单台服务器的CPU计算能力、内存容量和磁盘承载能力等;另外一种是横向扩展,也就是通过增加服务器的数量来增加处理能力。前者存在业务中断和扩展上限等诸多的问题,特别是互联网业务[详细]
-
两类非常隐蔽的全表扫描,不能命中索引(一分钟系列)
所属栏目:[MySql教程] 日期:2019-07-29 热度:52
《MySQL死锁分析的两个工具》中,举了一个强制类型转换导致死锁的例子,有朋友询问是不是类型转换都不能命中索引,花1分钟细说一下。 第一类:列类型与where值类型不符,不能命中索引,会导致全表扫描(full table scan)。 数据准备: createtablet1( cellv[详细]
-
100亿数据,非“双倍”扩容,如何不影响服务,数据平滑迁移?
所属栏目:[MySql教程] 日期:2019-07-29 热度:123
上次《百亿级数据DB秒级平滑扩容!》之后,很多朋友提问,说如果不是双倍扩容,能否做到平滑迁移,不影响服务呢? 适用什么场景? 互联网有很多数据量较大,并发量较大,业务复杂度较高的业务场景,其典型系统分层架构如下: (1)上游是业务层biz,实现个性化[详细]
-
MySQL和PG到底哪个更好用?
所属栏目:[MySql教程] 日期:2019-07-27 热度:78
如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。 MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库?MySQL还是PostgreSQL呢?该选择哪个开源数据[详细]
-
四个步骤让你彻底明白Redis到底快在哪里
所属栏目:[MySql教程] 日期:2019-07-27 热度:168
前言 Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常[详细]
-
MySQL--RDS下的分区表实践
所属栏目:[MySql教程] 日期:2019-07-26 热度:71
实践背景 项目中有的表空间太大,且行数太多,故决定对一些表进行分库分表。再研究选型方案的时候发现常用的一些分库分表的解决方案对业务代码修改较多,故决定采用MySQL的分区方案。 其实在我个人看来,分区表就是MySQL帮我们实现了底层的分库分表,不需[详细]
-
这两个小技巧,让SQL语句不仅躲了坑,还提升了1000倍
所属栏目:[MySql教程] 日期:2019-07-26 热度:103
本次来讲解与 SQL 查询有关的两个小知识点,掌握这些知识点,能够让你避免踩坑以及提高查询效率。 1、允许字段的值为 null,往往会引发灾难 首先,先准备点数据,后面好演示 createtableanimal( idint, namechar(20), index(id) )engine=innodb; index(id)[详细]
-
如何利用工具,迅猛定位低效SQL? | 1分钟系列
所属栏目:[MySql教程] 日期:2019-07-26 热度:50
《两个工具分析SQL死锁》 《SQL空值带来的大坑》 两个案例分析,展现了MySQL性能分析工具explain的强大。 《同一个SQL语句,为啥性能差异咋就这么大呢?》 详细叙述了explain结果中最重要的type字段(连接类型)的含义。 其实,explain结果中还有一个Extra字[详细]
-
一文学会Mysql数据库性能优化--创建表、设计表、SQL优化
所属栏目:[MySql教程] 日期:2019-07-26 热度:92
概述 数据库的优化肯定是先分析再具体优化,前面已经介绍了在对mysql数据库sql做优化时的一些方法,今天主要从创建表、设计表及具体sql优化几个方面来介绍一些性能优化的方法。 01.创建表时的性能优化 1. 永远为每张表设置一个 ID 每张表都应该设置一个 ID[详细]
-
面试官:谈谈你对PG体系结构的理解?
所属栏目:[MySql教程] 日期:2019-07-26 热度:52
今天本文主要从日志文件、参数文件、控制文件、数据文件、redo日志(WAL)、后台进程这六个方面来介绍一下PostgreSQL的架构。 架构 PostgreSQL的主要架构如下: 一、日志文件 1. 日志文件种类 $PGDATA/log 运行日志(pg10之前为$PGDATA/pg_log) $PGDATA/pg_wa[详细]
-
Web安全测试必须注意的五个方面
所属栏目:[MySql教程] 日期:2019-07-24 热度:135
随着互联网的飞速发展,web应用在软件开发中所扮演的角色变得越来越重要,同时,web应用遭受着格外多的安全攻击,其原因在于,现在的网站以及在网站上运行的应用在某种意义上来说,它是所有公司或者组织的虚拟正门,所以比较容易遭受到攻击,存在安全隐患[详细]
-
直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证
所属栏目:[MySql教程] 日期:2019-07-24 热度:113
法国通信系统工程师学校与研究中心(Eurecom)数据科学系助理教授 Appuswamy 和伦敦帝国理工学院 SCALE 实验室负责人 Heinis 等人近期发表了一篇关于在 DBMS 存储层操作DNA的论文《OligoArchive: Using DNA in the DBMS storage hierarchy》。 论文研究了[详细]
-
详解MySQL索引长度和区分度之间的平衡,值得收藏
所属栏目:[MySql教程] 日期:2019-07-24 热度:164
概述 前面我们讲了怎么去计算索引所占用的长度?那么换个方式想?索引又应该设置多少长度比较合理呢? 区分度与索引长度的权衡 首先索引长度和区分度是相互矛盾的, 索引长度太短,那么区分度就很低,吧索引长度加长,区分度就高,但是索引也是要占内存的,所[详细]
-
一个简单易用的开源BI软件,专为SQL用户设计的开源库
所属栏目:[MySql教程] 日期:2019-07-24 热度:95
poli 一个易于使用的SQL报告应用程序,专为SQL爱好者而设计。 SQL中的电源数据分析,可获得更快的业务洞察力。 特性 自托管和轻松设置 平台独立的Web应用程序 单个JAR文件+单个SQLite DB文件。在5分钟内启动并运行。 连接任何支持JDBC驱动程序的数据库 Pos[详细]
-
彻底干掉恶心的SQL注入漏洞, 一网打尽!
所属栏目:[MySql教程] 日期:2019-07-24 热度:190
简介 文章主要内容包括: Java 持久层技术/框架简单介绍 不同场景/框架下易导致 SQL 注入的写法 如何避免和修复 SQL 注入 JDBC 介绍 JDBC: 全称 Java Database Connectivity 是 Java 访问数据库的 API,不依赖于特定数据库 ( database-independent ) 所有[详细]
-
超详细的MySQL数据库参数优化,都总结在这里了
所属栏目:[MySql教程] 日期:2019-07-24 热度:133
概述 最近在对各个系统的mysql做一些参数上的优化,也开了慢查询,准备后面针对特定sql再进一步优化。下面主要介绍一下一些优化的参数。 1、优化前mysql配置 可以看到基本上是没怎么做优化的。 2、优化后的配置 以下是优化后的一些参数。 3、优化参数说明[详细]
-
优化体系 | 我是怎么计算MySQL数据库索引长度的?
所属栏目:[MySql教程] 日期:2019-07-24 热度:196
概述 我们知道MySQL Innodb 对于索引长度的限制为 767 字节,并且UTF8mb4字符集是4字节字符集,则 767字节 / 4字节每字符 = 191字符(默认索引最大长度),所以在varchar(255)或char(255) 类型字段上创建索引会失败,提示最大索引长度为767字节。 那么怎么去[详细]
-
MariaDB:真正的实时同步数据库,MySQL要小心了
所属栏目:[MySql教程] 日期:2019-07-24 热度:179
一、背景介绍 无论是采用binlog或者GTID的方式,其本质都是通过I/O_thread和sql_thread的形式进行的同步,因为无法避免复制延迟而饱受诟病,基于上述MariaDB引入了Galera Cluster来解决此问题。 二、Galera Cluster介绍 Galera Cluster与传统的复制方式不[详细]
-
如何选择高性能NoSQL数据库
所属栏目:[MySql教程] 日期:2019-07-24 热度:150
很多公司会选择NoSQL或Not Only SQL新型数据库来支撑在线和运营程序服务,那么我们要如何选择高性能NoSQL数据库? 1. 为数据库定义目标 NoSQL数据库的目标可能是为移动设备上的数千名用户提供个性化数字体验,为后端支付处理应用程序存储数据,管理有一定时[详细]
-
Linux性能测试工具有什么好用的工具,这里推荐一款
所属栏目:[MySql教程] 日期:2019-07-23 热度:101
1. 前言 本文主要讲解如何使用sysbench这款软件对Linux服务器进行基准测试,它支持CPU、线程、内存、数据库压力测试,是程序开发专业人员经常使用的一款基准压力测试软件。 2. 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不[详细]