MySQL数据库的例外处理测试

针对存储过程 、触发器或函数内部语句可能发生的错误或警告信息,需要进行相关异常或称 例外的捕捉,然后作出相应的处理,简单地做了相关的测试,详细信息如下:

 

USE TEST;

CREATE TABLE `eugene` (
`ID` int(11) NOT NULL,
PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

delimiter $$
DROP PROCEDURE IF EXISTS `test`.`handlerdemo`$$
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE X2 INT;
DECLARE CONTINUE HANDLER FOR SQLWARNING       SET X2= 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND             SET X2 = 2;
DECLARE CONTINUE HANDLER FOR SQLSTATE ’23000′    SET X2= 3;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION     SET X2 = 4;

MySQL5.6 OnlineDDL对二级索引变更的影响

导读:本文是测试online DDL对表的二级索引的增删的影响。测试目的有以下几点:
(1):online DDL和旧机制的DDL 在二级索引变更方面的效率如何
(2):onlineDDL是否支持DML,查询并发

mysql> show create table small_table G
*************************** 1. row ***************************
Table: small_table
Create Table: CREATE TABLE `small_table` (
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT ”,
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT ”,
`TABLE_NAME` varchar(64) NOT NULL DEFAULT ”,
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT ”,
`ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT ’0′,
`COLUMN_DEFAULT` longtext,
`IS_NULLABLE` varchar(3) NOT NULL DEFAULT ”,
`DATA_TYPE` varchar(64) NOT NULL DEFAULT ”,
`CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
`CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
`NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
`NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
`DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
`CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
`COLLATION_NAME` varchar(32) DEFAULT NULL,
`COLUMN_TYPE` longtext NOT NULL,
`COLUMN_KEY` varchar(3) NOT NULL DEFAULT ”,
`EXTRA` varchar(30) NOT NULL DEFAULT ‘www’,
`PRIVILEGES` varchar(80) NOT NULL DEFAULT ”,
`COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT ”,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1710 DEFAULT CHARSET=utf8
1 row in set (0.04 sec)

MySQL5.6 Online DDL对全文索引变更

导读:


本文是onlineDDL 对Innodb全文索引的变更测试的。MySQL5.6手册中有这样的解释: (除非用户提供FTS_DOC_ID列,否则创建第一个全文索引的过程包含表的复制。

后续在该表可以就地(inplace)创建全文索引)。

下面对此进行相应的测试,测试目的有以下几点:

(1):FTS_DOC_ID对全文索引创建的影响
(2):onlineDDL 对全文索引的变更是否并发DML

MySQL5.6 OnLine DDL 对外键变更测试

导读:
本文是MySQL5.6 OnLine DDL 对外键变更操作的测试,测试目的: foreign_key_checks系统变量开启对增删外键约束的影响。

mysql> show variables like ‘%foreign_key_check%’;
+——————–+——-+
| Variable_name      | Value |
+——————–+——-+
| foreign_key_checks | ON    |
+——————–+——-+
1 row in set (0.00 sec)

测试1

MariaDB中文手册

MariaDB

这是MariaDB主要的知识库

按照下面的链接找到您感兴趣的的信息。如果您在文档上没有找到您想要的任何特别的信息,您可以在这里提问,我们将尽力提供最佳答案!

MariaDB简介

MariaDB是一个增强的MySQL替代品,并且在GPL v2许可证可用
它主要是由MariaDB community开发的,由MariaDB Foundation主管。

安全性

今天的世界,安全是非常重要的, 这也是MariaDB开发人员特别关注的。该项目在MySQL的基础上维护自己的一套安全补丁。对于每个MariaDB的发布版本,开发人员将合并所有MySQL的安全补丁,如果有必要,我们还会增强它们。当发现有严重安全问题,开发人员立即准备和分发一个新版本的MariaDB,尽快修复此问题。

MariaDB团队发现并报告了许多在MySQL和MariaDB中存在的安全问题。MariaDB团队与http://cve.mitre.org/紧密合作,以确保所有的安全问题及时报告和足够解释其中的细节。安全细节通常在修复MariaDB和MySQL版本后才公开。

兼容性

MySQL5.6 对列的变更Online DDL测试

导读:MySQL5.6 OnLine DDL 对列变更操作的测试,测试目的:对于列不同操作,Online DDL是否需要拷贝表以及允许DML,SELECT 并发。
下面测试使用测试案例 test_column,big_table,表定义是一致,结果集大小不同。

mysql> show create table test_column G
*************************** 1. row ***************************
Table: test_column
Create Table: CREATE TABLE `test_column` (
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT ”,
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT ”,
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT ”,
`ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT ’0′,
`COLUMN_DEFAULT` longtext,
`DATA_TYPE` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

动员令:诚邀MySQL数据库爱好者为翻译MySQL手册而战

动员令:为翻译MySQL手册而战

*:first-child {
margin-top: 0 !important;
}

body>*:last-child {
margin-bottom: 0 !important;
}

/* BLOCKS
=============================================================================*/

p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}

/* HEADERS
=============================================================================*/

h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
}

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code {
font-size: inherit;
}

h1 {
font-size: 28px;
color: #000;
}

h2 {
font-size: 24px;
border-bottom: 1px solid #ccc;
color: #000;
}

h3 {
font-size: 18px;
}

h4 {
font-size: 16px;
}

h5 {
font-size: 14px;
}

h6 {
color: #777;
font-size: 14px;
}

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child {
margin-top: 0;
padding-top: 0;
}

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0;
}

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p {
margin-top: 10px;
}

/* LINKS
=============================================================================*/

a {
color: #4183C4;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

/* LISTS
=============================================================================*/

ul, ol {
padding-left: 30px;
}

ul li > :first-child,
ol li > :first-child,
ul li ul:first-of-type,
ol li ol:first-of-type,
ul li ol:first-of-type,
ol li ul:first-of-type {
margin-top: 0px;
}

ul ul, ul ol, ol ol, ol ul {
margin-bottom: 0;
}

dl {
padding: 0;
}

dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}

dl dt:first-child {
padding: 0;
}

dl dt>:first-child {
margin-top: 0px;
}

dl dt>:last-child {
margin-bottom: 0px;
}

dl dd {
margin: 0 0 15px;
padding: 0 15px;
}

dl dd>:first-child {
margin-top: 0px;
}

dl dd>:last-child {
margin-bottom: 0px;
}

/* CODE
=============================================================================*/

pre, code, tt {
font-size: 12px;
font-family: Consolas, “Liberation Mono”, Courier, monospace;
}

code, tt {
margin: 0 0px;
padding: 0px 0px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}

pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}

pre {
background-color: #f8f8f8;
border: 1px solid #ccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}

pre code, pre tt {
background-color: transparent;
border: none;
}

/* QUOTES
=============================================================================*/

blockquote {
border-left: 4px solid #DDD;
padding: 0 15px;
color: #777;
}

blockquote>:first-child {
margin-top: 0px;
}

blockquote>:last-child {
margin-bottom: 0px;
}

/* HORIZONTAL RULES
=============================================================================*/

hr {
clear: both;
margin: 15px 0;
height: 0px;
overflow: hidden;
border: none;
background: transparent;
border-bottom: 4px solid #ddd;
padding: 0;
}

/* TABLES
=============================================================================*/

table th {
font-weight: bold;
}

table th, table td {
border: 1px solid #ccc;
padding: 6px 13px;
}

table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}

table tr:nth-child(2n) {
background-color: #f8f8f8;
}

/* IMAGES
=============================================================================*/

img {
max-width: 100%
}
–> 

动员令:为翻译MySQL手册而战

动员令

您有没有因小小的MySQL支撑互联网80%以上的业务而惊奇?您有没有觉得MySQL是多么神秘而美丽?您有没有为开源贡献一份力量的热心?您有没有意识到翻译一份中文版本的MySQL文档的重要性?帮助更多的人学习和提高,从手册开始。

 

请加入我们!将 MySQL5.6 的手册 翻译成我们的母语中文,让全世界五分之一的人口不再因为MySQL文档是英文的而蛋疼!(考虑到性别因素,可能是十分之一,:))让全世界五分之一的人口可以使用自己的母语阅读MySQL手册!

 

       我们的目标是翻译 MySQL 5.6 的手册。我们的核心是以译促学,提高自身MySQL技能。既可以为开源社区做贡献,又可以提高自身技术水平。一举多得,何乐而不为?

 

初步计划

 

道之所存,虽千万人吾往矣!我们计划翻译全部的 MySQL 5.6 的手册。鉴于MySQL手册内容较多,初步计划定为“五步走战略”。具体介绍如下:

 

  1. 翻译 MySQL 5.6版中新增的内容,提交审核;
  2. 第一步完成后,参考 MySQL 5.1 的中文版,把剩余的文档也全部翻译整理出来,提交审核;
  3. 全部的审核完成后,开源出来,接受所有热心人士的审核和修订;
  4. 开源的同时,发布出来一个完整版,方便查阅;
  5. 根据文档库的修订情况,不定时发布修改后的版本。

RAID卡MTRR的RAID模式write-combining

现代CPU采用了大量的技术来抵消内存访问带来的延迟。读写内存数据期间,CPU能执行成百上千条指令。

多级SRAM缓存是减小这种延迟带来的影响的主要手段。此外,SMP系统采用消息传递协议来实现缓存之间的一致性。遗憾的是,现代的CPU实在是太快了,即使是使用了缓存,有时也无法跟上CPU的速度。因此,为了进一步减小延迟的影响,一些鲜为人知的缓冲区派上了用场。

本文将探讨“合并写存储缓冲区(write combining store buffers)”,以及如何写出有效利用它们的代码。

CPU缓存是一种高效的非链式结构的hash map,每个桶(bucket)通常是64个字节。这就是一个“缓存行(cache line)”。缓存行是内存交换的实际单位。例如,主存中地址A会映射到一个给定的缓存行C。