Welcome 微信登录

首页 / 数据库 / MySQL

MySQL内部临时表策略

MySQL内部临时表策略

通过对MySQL数据库源码的跟踪和调试,以及参考MySQL官方文档,对MySQL内部临时表使用策略进行整理,以便于更加深入的理解。使用内部临时表条件 MySQL内部临时表的使用有一定的策略,从源码中关于SQL查询是否需要内部临时表。可以总结如下: 1、DISTINCT查询,但是简单的DISTINCT查询,比如对primary key、unique key等DISTINCT查询时,查询优化器会将DISTINCT条件优化,去除DISTINCT条件,也不会创建临...
MySQL数据库Alter database 处理逻辑

MySQL数据库Alter database 处理逻辑

Alter database的处理过程没有像alter table那么恐怖,处理逻辑还是比较清晰的。先整理如下:1、查看数据库名是否有效调用check_db_name()(table.cc:2876)查看数据库名是否有效,其中调用check_table_name()(table.cc:2904)函数。check_table_name这个函数名有些误导,实际是检查数据库名是否合法。2、查看是否有权修改调用check_access()(sql_parse.cc...
MySQL审计插件安装使用说明文档

MySQL审计插件安装使用说明文档

目的为了便于开发人员和DBA安装和使用MySQL审计插件,并对审计的使用和审计粒度有更全面的理解。本文对审计插件的设计思想、审计粒度、审计配置说明、安装使用、其他内容进行详细的描述。一方面便于后续的维护和开发,另一方面对于使用提供便利的查询。设计思想MySQL的审计接口为开发审计插件提供了有利的条件,基于MySQL审计接口,参考General log设计思想,将审计插件的审计类型定义了:FILE和TABLE两种类型,用于将审计的内容分别写入日志文件或数据库...
MySQL源码中的BUG

MySQL源码中的BUG

今天在深入学习MySQL查询优化器的过程中,发现一个低级的错误,应该是开发人员出于笔误导致的,当然这个错误不会出现问题,仅仅会在debug环境下,输出trace信息的时候会误导开发人员。现公布如下:本文基于mysql-5.5.20源代码进行调试开发。sql_select.cc文件的5439行,代码如下:DBUG_EXECUTE("opt",print_plan(join,idx,read_time,record_count,idx,"SOFAR:"););...
MySQL审计插件安装使用说明文档--升级版

MySQL审计插件安装使用说明文档--升级版

目的基于之前设计开发的mysql审计插件,以及《MySQL审计插件安装使用说明文档》的内容介绍,对完善后的mysql审计插件进行补充和说明。主要对新增内容进行详细说明,进一步完善审计插件的功能。新增内容针对之前版本中存在的不足,功能不够完善的问题,对MySQL审计插件进行进一步的开发和完善。新增内容主要有:1、增加审计数据库、数据表功能。之前版本中没有实现该功能,在当前版本中,将审计选项中audit_dbs、audit_tables的处理实现。可以审计某些...
使用sp_cycle_errorlog管理SQL Server错误日志

使用sp_cycle_errorlog管理SQL Server错误日志

由于高可用的数据库服务器可能很少停机,SQL Server的日志文件增长会非常大。这样对于DBA使用错误日志查找信息就会比较困难,而且日志大了写入以后性能也会受到影响。我们通常认为SQLServer启动的时候才会创建错误日志,所以需要停机才能重新创建日志文件,而这样的维护对于高可用性的数据库是不可想象的。其实完全可以不通过重启服务就可以实现日志的循环。 微软提供了一个存储过程sp_cycle_errorlog可以实现日志的循环。 这个存储过程的作用是关闭当...
SQL Server更改表数据类型View中Column数据类型没有相应改变

SQL Server更改表数据类型View中Column数据类型没有相应改变

今天有个供应商问我一个问题如果更改表中一个字段的数据类型是不是View中的字段类型也响应自动更改。当时我想应该是会自动更改的。但是供应商说他们试过了不会更改的,问我除了重新建有没有什么办法。当时想到了刷新View的存储过程sp_refreshview,让他们试一下。执行之后View中的数据类型就被更新了。通过这个例子可以看到View中的字段类型是不会同步的除是schema-bound 的View. MSDN查到的解释:Updates the metadat...
Oracle的一些安全加固配置

Oracle的一些安全加固配置

Oracle数据库安全往往容易被SA或者DBA所忽视,实则还是需要提高警惕,一下是一些配置和参数以改进Oracle数据库的安全性。0. 限制sysdba角色的用户使用远程登录alter system set remote_login_passwordfile=none scope=spfile;这个参数默认值为 EXCLUSIVE ,注意,修改后只能从主机上使用OS认证的方式进行登录。1. 使用profile进行限定资源和口令安全如果要使用口令管理,以SY...
Oracle:sysdba,dba,sysoper的区别

Oracle:sysdba,dba,sysoper的区别

sys和system用户区别1)最重要的区别,存储的数据的重要性不同sys所有Oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。2)其次的区别,...
初始Oracle RAC:产生的背景及其结构

初始Oracle RAC:产生的背景及其结构

对于信息系统来说,数据库可谓是其核心,它极大地影响了信息系统的安全性(数据安全、访问安全)、稳定性和整个信息系统的性能。这也是衡量数据库产品品质的三个重要指标,各大数据库厂商针对这些问题不断地增强自身产品的竞争力,以谋求更多的商业价值。本文讨论的是目前使用最为广泛的Oracle公司的数据库产品及其高可用性解决方案。 Oracle RAC(Real Application Cluster,真正的应用集群)应用非常广泛,几乎支持目前的所有主流平台,尤其是Li...
配置phpMyAdmin连接多台MySQL

配置phpMyAdmin连接多台MySQL

默认安装phpMyAdmin,通常只能连一台MySql服务器,其配置信息是保存在phpMyAdmin的配置文件里的,当我们需要在多台服务器之间进行切换登陆的时候,修改起来非常麻烦。遵照下面的配置方法,我们可以方便的使用phpMyAdmin连接多台MySQL。方法一:登陆phpMyAdmin时输入服务器ip地址、用户名、密码缺点:登陆操作比较繁琐,而且切换服务器时须首先退出当前所登陆的服务器操作步骤:修改phpMyAdmin目录下的 /libraries/c...
MySQL中merge表存储引擎用法

MySQL中merge表存储引擎用法

在Mysql数据库中,Merge表有点类似于视图。mysql的merge引擎类型允许你把许多结构相同的表合并为一个表。之后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有完全相同表的定义和结构。Mysql Merge表的优点:A. 分离静态的和动态的数据B. 利用结构接近的的数据来优化查询C. 查询时可以访问更少的数据D. 更容易维护大数据集E. 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改...
理解REDO LOG(1) 介质恢复和实例恢复的基本概念

理解REDO LOG(1) 介质恢复和实例恢复的基本概念

Oracle世界,有3种数据:undo、redo和data。而redo 应"提交事务不丢失"而生的一种机制,服务于两类场景:一是instance recovery、一是media recovery。instance recovery目的:当数据库发生故障时,确保buffer cache中的数据不好丢失,保证数据库的一致性media recovery 目的:当数据文件发生故障时,能够恢复数据redo是按照thread来组织的。于单实例,只有一个THREAD;...
<< 571 572 573 574 575 576 577 578 579 580 >>