mysql 数据库
badman250
专注分享IT知识技能
展开
-
记一次Mysql数据库性能异常抖动分析全过程
记一次Mysql数据库性能异常抖动分析全过程作者: yanyun 时间: September 19, 2017 分类: Database转自:http://linuxperformance.top/index.php/archives/97/环境及测试现象在同一个硬件环境下,相同的mysql数据库环境(日志写模式都设置为双0,0),使用相同的测试工具 sys转载 2017-11-23 23:44:11 · 3542 阅读 · 0 评论 -
26.笔记 MySQL学习——MySQL的表选项
26.笔记 MySQL学习——MySQL的表选项在CREATE TABLE语句中的右括号之后加上一个或多个表选项。例如:CREATE TABLE mytbl ( … ) ENGINE = MEMORY;实际执行如下:mysql> create table t (i int) engine=archive;Query OK, 0 rows affected (0.00 sec原创 2017-11-15 21:45:02 · 440 阅读 · 0 评论 -
25.笔记 MySQL学习——MySQL创建表
25.笔记 MySQL学习——MySQL创建表 创建表的方法是使用CREATETABLE语句。要有CREATE 权限。 最简单的情况下,指定表名和各个列即可如下:mysql> create table mytbl( -> name char(20), -> birth date not null, -> weight in原创 2017-11-15 21:44:30 · 417 阅读 · 0 评论 -
24.笔记 MySQL学习——其他存储引擎
24.笔记 MySQL学习——其他存储引擎ARCHIVE 引擎提供各类数据归档存储功能BLACKHOLE引擎所创建的表,其写操作会被忽略,读操作是返回空内容。CSV引擎所创建的表,其写操作会被忽略,读操作是返回空内容FEDREATED引擎提供了访问由其他MYUSQL服务器进行管理的表的能力MERGE引擎提供了一种把多个MyISAM表合并为一个逻辑单元的手段。可以突破文件系统对单原创 2017-11-15 21:44:03 · 376 阅读 · 0 评论 -
23.笔记 MySQL学习——NDB存储引擎
23.笔记 MySQL学习——NDB存储引擎 NDB存储引擎是MYSQL的集群存储引擎。对于这个存储引擎,MYSQL服务器实际上变成了一个其他进程的集群客户端。 集群节点会处理彼此间的通信,从而在内存中实现对表的管理。 为了是实现冗余,表会在集群进程之间被复制。内存存储提供了高性能,而集群机制提供了高可用性。原创 2017-11-15 21:43:31 · 914 阅读 · 0 评论 -
22.笔记 MySQL学习——Memory存储引擎
22.笔记 MySQL学习——Memory存储引擎Memory存储引擎会把表存储存在内存里,并且这些表的行长度固定不变。 MEMORY表示临时性的,掉电时内容也会消失。有一下几个特性:l 默认情况下,MEMORY表使用的是散列索引l 存储在MEMORY表里的行使用长度固定不变使用像 或BETWEEN的运算符来查找某个范围内的值时,可以用BTREE索原创 2017-11-15 21:42:44 · 392 阅读 · 0 评论 -
21.笔记 MySQL学习——MyISAM存储引擎
21.笔记 MySQL学习——MyISAM存储引擎 MyISAM存储引擎有如下功能:l 当保存连续相似的字符串索引值时,它会对键进行压缩l 与其他存储引擎相比,它为AUTO_INCREATMENT列提供了更多的功能l 每个MyISAM表都有一个标志,它会在执行表检查操作时被设置l 支持全文检索和FULLTEXT索引l 支持空间数据类型和SPAT原创 2017-11-15 21:40:49 · 388 阅读 · 0 评论 -
20.笔记 MySQL学习——InnoDB存储引擎
20.笔记 MySQL学习——InnoDB存储引擎 InnoDB存储引擎是MySQL的默认引擎。 有几项功能:n 其表在执行提交和回滚操作时是事务安全的。n 在系统崩溃后可以自动恢复n 外键和引用完整性支持,包括级联删除和更新n 基于行级别的锁定和多版本化n 从MySQL 5.6开始,InnoDB支持全文搜索和FULLT原创 2017-11-15 21:40:30 · 526 阅读 · 0 评论 -
19.笔记 MySQL学习——表的磁盘存储方式
19.笔记 MySQL学习——表的磁盘存储方式每次创建表时MYSQL都会创建一个磁盘文件,用于保护该表的格式。扩展名为.frm. 各个存储引擎还可能会为表再创建几个特定的文件,用于存储表的内容。 如下: 存储引擎:InnoDB 磁盘文件 .idb 存储引擎:MyISAM 数据.MYD , 索引原创 2017-11-15 21:40:09 · 1160 阅读 · 0 评论 -
18.笔记 MySQL学习——MYSQL存储引擎
18.笔记 MySQL学习——MYSQL存储引擎MYSQL支持多种存储引擎。每一种存储引擎所实现的表都具有一组特定的属性或特性。 一开始MYSQL服务器把所有存储引擎编译在内部,以供使用。现在,采用了一种可插入的架构,实现选择性的插件加载,许多存储引擎都被构建为了插件。这样引擎是可选的了,根据需要进行加载。还允许将第三方开发人员的存储引擎集成到服务器里。查看引擎原创 2017-11-15 21:39:49 · 428 阅读 · 0 评论 -
17.笔记 MySQL学习——MYSQL常用操作命令数据库相关
17.笔记 MySQL学习——MYSQL常用操作命令数据库相关Mysql中选择数据库使用命令 use db_name;如下:mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql原创 2017-11-15 21:39:23 · 431 阅读 · 0 评论 -
66.笔记 MySQL学习——MySQL的BIT数据类型
66.笔记 MySQL学习——MySQL的BIT数据类型创建一个表如下:create table t (b bit(3));执行插入,查询:MariaDB [mytest]> insert into t(b) values(0),(b'11'),(b'101'),(b'111');Query OK, 4 rows affected (0.06 sec)Records: 4原创 2017-11-19 22:14:30 · 456 阅读 · 0 评论 -
65.(转) MySQL数据类型
65.(转) MySQL数据类型 MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类转载 2017-11-19 22:14:08 · 326 阅读 · 0 评论 -
64.笔记 MySQL学习——空间、布尔、NULL值
64.笔记 MySQL学习——空间、布尔、NULL值 MYSQL支持空间值,不过仅 限于InnoDB,MyISAM,NDB和ARCHIVE这几种引擎。可以直接表示像点、线和多边形这样的值。 这个类型都是每一个OpenGIS规范的实现。 布尔值 任何非零、非NULL的值会被当成值 布尔常量TRUE和F原创 2017-11-19 22:13:44 · 346 阅读 · 0 评论 -
63.笔记 MySQL学习——时态值
63.笔记 MySQL学习——时态值MYSQL支持将日期和时间合并在一起的值,例如’2012-06-1712:30:43’。这是标准的SQL格式,叫ISO 8601. 可以使用DATE_FORMAT()函数,按任意方式来显示日期值。对于其他格式的输入值,需要使用STR_TO_DATE()函数来进行转换。 对于组合后的日期时间值,允许在日期和时原创 2017-11-19 22:13:24 · 364 阅读 · 0 评论 -
62.笔记 MySQL学习——字符集相关的系统变量
62.笔记 MySQL学习——字符集相关的系统变量Mysql有几个系统变量涉及字符集支持的各个方面。Character_set_system 表示的是用于存储标识符的字符集。Character_set_server和collation_server表示服务器的默认字符集和排序规则Character_set_database和collation_database分别表示默认数据库的字原创 2017-11-19 22:12:50 · 1053 阅读 · 0 评论 -
61.笔记 MySQL学习——字符串类型与字符集
61.笔记 MySQL学习——字符串类型与字符集字符串值分为两类:二进制串和非二进制串二进制串是一组字节序列;非二进制串是一个字符序列。非二进制串与字符集相关,字符集决定了哪些字符可以用。字符集有一种或多种排序规则。默认的字符集和排序规则是latin1和latin1_swedish-ci字符单位在占用存储空间方面存在差异。查看支持哪些字符集,命令如下:mysql> sh原创 2017-11-19 22:12:16 · 394 阅读 · 0 评论 -
60.笔记 MySQL学习——MySQL数据值类别之字符串
60.笔记 MySQL学习——MySQL数据值类别之字符串字符串两端引号可以是单引号也可以是双引号。尽量使用单引号,因为:n SQL语言标准规定使用单引号,使用单引号字符串的语句可以更好地移植到其他数据库引擎。n 如果启用了SQL模式ANSI_QUOTES,那么双引号将处理成标识符引起来的符号,而不会把它只当成字符串引起来的符号。特殊字符需要转义,这个很多编码的语法都是如此。原创 2017-11-19 22:11:45 · 414 阅读 · 0 评论 -
67.笔记 MySQL学习——MySQL程序设计
67.笔记 MySQL学习——MySQL程序设计Mysql发行版中有一组与服务器进行通信的客户端程序。例如mysqldump,mysqladmin,mysql等。 有些问题,这些标准客户端程序不能满足,MYSQL提供了一个客户端应用程序编程接口(Application Programming Interface,API). 与mysql客户端程序原创 2017-11-21 19:58:11 · 556 阅读 · 0 评论 -
68.笔记 MySQL学习——C编写MySQL程序一准备
68.笔记 MySQL学习——C编写MySQL程序一准备MySQL提供的C语言写成的客户端开发库,提供了如下功能:l 打开和关闭服务器会话的连接管理例程l 用于构造SQL语句,并把这些语句发送到服务器,然后对结果进行处理的例程l 在API调用失败时,用于确定出错原因的状态检查函数和出错报告函数l 用于处理在选项文件里或在命令行上给出的各种选项的例程查看示例可以查看源原创 2017-11-21 19:58:30 · 398 阅读 · 0 评论 -
69.笔记 MySQL学习——C编写MySQL程序二连接服务器
69.笔记 MySQL学习——C编写MySQL程序二连接服务器实现连接MySQL服务器、断开连接和退出。代码如下:#include #include #include static char *opt_host_name = NULL; /* server host (default=localhost) */static char *opt_user_name原创 2017-11-21 19:59:14 · 396 阅读 · 0 评论 -
36.笔记 MySQL学习——借助INFORMATION_SCHEMA获取元数据
36.笔记 MySQL学习——借助INFORMATION_SCHEMA获取元数据通过SELECT语句可以访问INFORMATION_SCHEMA库。SHOW语句的输出里,列的个数是固定的,无法把输出内容捕获到表里去。 利用INFORMATION_SCHEMA可以选取特定的输出列。 INFORMATION_SCHEMA可以理解成一个虚拟的库,表是各原创 2017-11-16 20:49:36 · 508 阅读 · 0 评论 -
35.笔记 MySQL学习——通过SHOW获取数据库元数据
35.笔记 MySQL学习——通过SHOW获取数据库元数据MYSQL提供的SHOW语句,可以显示许多类型的元数据。列出可访问数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql原创 2017-11-16 20:49:07 · 467 阅读 · 0 评论 -
34.笔记 MySQL学习——更改表结构
34.笔记 MySQL学习——更改表结构ALTER TABLE是一条万能型的语句,拥有许多用途。在使用ALTER TABLE之前,如果需要查看表的当前定义,可以执行SHOW CREATE TABLE语句。1. 更改列的数据类型如果要更改某列的数据类型,可以使用CHANGE子句或MODIFY字间距。例如:ALTER TABLE mytbl MODIFY i MEDIUMIN原创 2017-11-16 20:48:36 · 417 阅读 · 1 评论 -
33.笔记 MySQL学习——删除索引
33.笔记 MySQL学习——删除索引命令有两种可以是DROP INDEX或者ALTER TABLE如果是DROP INDEX 需要给出删除索引的名字例如DROP INDEX index_name ON tbl_name;使用ALTER TABLE 命令如下:ALTER TABLE tbl_name DROP INDEX index_name;ALTER TABLE tbl原创 2017-11-16 20:48:15 · 394 阅读 · 0 评论 -
32.笔记 MySQL学习——创建索引
32.笔记 MySQL学习——创建索引 MYSQL创建多种类型的索引:l 唯一索引l 常规索引l FULLTEXT索引l SPATIAL索引l HASH索引可以再创建新表时,包含索引定义。为已有的表添加索引,可以使用语句ALTER TABLE或CREATE INDEXALTER TABLE比CREATE INDEX 语句更灵活多变。原创 2017-11-16 20:47:51 · 430 阅读 · 0 评论 -
31.笔记 MySQL学习——索引表的存储
31.笔记 MySQL学习——索引表的存储 索引是加快访问表内容的基本手段。 MYSQL提供了多种灵活的索引创建办法l 可以对单个列或多个列建立索引l 索引可以只包含唯一值,也可以包含重复值l 可以为同一个表创建多个索引,帮助优化对表的不同类型的查询l 对于除ENUM和SET以外的字符串类型,可以利用列的前缀创建索引并非所原创 2017-11-16 20:47:34 · 483 阅读 · 0 评论 -
30.笔记 MySQL学习——删除表
30.笔记 MySQL学习——删除表删除一个表比创建要容易多,命令如下Drop table tbl_name可以同时删除多个表Drop table tbl_name1,tbl_name2,…;如果不存在表而执行删除命令就会报错,为了不让这个报错,可以加上IF EXISTS子句。Drop table if exists tbl_name;删除临时表,可以加上tempora原创 2017-11-16 20:46:19 · 454 阅读 · 0 评论 -
29.笔记 MySQL学习——使用分区表
29.笔记 MySQL学习——使用分区表 MySQL支持表分区,可以让表的内容分散存储在不同的物理存储位置。表分区可以有如下好处:l 表存储分布在多个设备上l 优化器可以把本地化搜索限定在某个特定的分区创建分区,要指定PARTITION BY子句分区函数可以根据范围、值列表或散列值来分配各行例如:create table log_partit原创 2017-11-16 20:45:48 · 491 阅读 · 0 评论 -
28.笔记 MySQL学习——其他创建表方式
28.笔记 MySQL学习——其他创建表方式可以根据其他表或根据查询结果创建新表。例如 CREATE TABLE … LIKE 根据原有表创建一个表,该表原有表的空副本。把原有表的结构复制过来,保留列的属性,索引也会被复制。CREATE TABLE … SELECT可以一条SELECT 语句的查询结果创建一个新表,不会复制索引,也不会复制所有的列属性。可以将两个配合使用,先创建表,原创 2017-11-16 20:45:25 · 438 阅读 · 0 评论 -
27.笔记 MySQL学习——暂时性表TEMPORARY的创建
27.笔记 MySQL学习——暂时性表TEMPORARY的创建 如果创建原本不存在的表,可以使用CREATE TABLE IF NOT EXIST语句。 如果表存在,那么不会创建表。 在表创建语句里加上TEMPORARY关键字,服务器会创建出一个临时表,会在与服务器的会话终止时自动消失。不需要使用DROP TABLE语句来删除原创 2017-11-16 20:45:11 · 515 阅读 · 0 评论 -
76.笔记 MySQL学习——C编写MySQL程序九预处理
76.笔记 MySQL学习——C编写MySQL程序九预处理之前都是以字符串的形式发送和检索所有信息。也可以使用二进制的客户端/服务器协议。 二进制协议支持服务器端预处理语句,并且可以按本地格式来传输数据值。 并非所有的语句都能被预处理,使用如下几种语句:create table,delete,do,insert,replace,select,se原创 2017-11-21 20:02:45 · 522 阅读 · 0 评论 -
75.笔记 MySQL学习——C编写MySQL程序八一次执行多条SQL
75.笔记 MySQL学习——C编写MySQL程序八一次执行多条SQLMYSQL支持一次执行多语句,可以把一个由分号隔开的多条语句构成的字符串发送给服务器,然后依次检索各个结果集。 默认是禁用的,开启的话,l 连接服务器时把CLIENT_MULTI_STATEMENTS选项添加到mysql_real_connect的标志参数里。l 或者使用,mysql_se原创 2017-11-21 20:01:40 · 708 阅读 · 0 评论 -
74.笔记 MySQL学习——C编写MySQL程序七支持SSL
74.笔记 MySQL学习——C编写MySQL程序七支持SSLMYSQL支持对SSL的支持,可以用它来编写自己的程序,让它通过安全连接来访问服务器。将上节笔记中的exec_stmt改成ssl加密方式连接的。 Sslopt-longopts.h是一个公共的MySQL头文件,定义的选项结构引用了OPT_SSL_SSL,OPT_SSL_KEY等多个值。原创 2017-11-21 20:01:18 · 692 阅读 · 1 评论 -
73.笔记 MySQL学习——C编写MySQL程序六交互式语句执行
73.笔记 MySQL学习——C编写MySQL程序六交互式语句执行本节实现一个简单的交互式语句执行客户端程序。在connect2.c代码上进行加工。代码如下:l exec_stmt.c#include #include #include /* for strdup() */#include #include static char *opt_h原创 2017-11-21 20:00:57 · 481 阅读 · 0 评论 -
72.笔记 MySQL学习——C编写MySQL程序五编码
72.笔记 MySQL学习——C编写MySQL程序五编码某些特殊字符需要小心处理。如果用引号引起来的字符串包含一个引号字符,可以采用双写引号,或者加上一个反斜线的方式来解决。 也可以使用mysql_real_escape_string来解决。会对函数进行编码。会把空字节、单引号、双引号、反斜线、换行符、回车符和CTRL+Z当做特殊字符。 对于原创 2017-11-21 20:00:29 · 327 阅读 · 0 评论 -
71.笔记 MySQL学习——C编写MySQL程序四处理SQL
71.笔记 MySQL学习——C编写MySQL程序四处理SQL每条语句执行涉及以下步骤:l 构造语句l 把语句发送给服务器执行l 对结果进行处理MYSQL客户端开发包包含两组用于语句执行的例程。把语句当做字符串发送或使用二进制协议发送。发送的函数是mysql_real_query或mysql_query. 其中mysql_query必须是一个以null结尾的字符串。原创 2017-11-21 20:00:07 · 406 阅读 · 0 评论 -
70.笔记 MySQL学习——C编写MySQL程序三出错处理和命令选项处理
70.笔记 MySQL学习——C编写MySQL程序三出错处理和命令选项处理只要调用的MSYQL函数会失败,对它进行错误检查就是重要的。错误处理MYSQL客户端开发库里那些带有返回值的例程,通常会返回值是指针还是整数,来表明执行是否成功。若返回非NULL指针,则表示成功,若返回NULL表示失败。返回整数值的函数,通常是返回0表示成功,返回非零值表示失败。并非所有API调用都有原创 2017-11-21 19:59:37 · 451 阅读 · 0 评论 -
59.笔记 MySQL学习——MySQL数据值类别之数值
59.笔记 MySQL学习——MySQL数据值类别之数值MYSQL能识别的数字报刊整数,定点数或浮点数,以及位域数。支持对精确数值数的精确运算,以及对近似值数的近似运算。精确值包括整数和带小数点的数。 整数可以表示成十进制或十六进制两种格式。 带小数点部分的精确值由3个部分组成:一个数字序列、一个小原创 2017-11-19 22:11:14 · 303 阅读 · 0 评论 -
58.笔记 MySQL学习——配置全文搜索引擎
58.笔记 MySQL学习——配置全文搜索引擎全文搜索有几个参数是可以配置的。变量ft_min_word_len和ft_max_word_len确定FULLTEXT索引里的那些单词所具有的最小长度和最大长度。默认是4和84可以在 /etc/my.cnf文件中增加ft_min_word_len=3重启数据库。如果已经建立了FULLTEXT索引的表,必须重建这些索引。在更改原创 2017-11-19 22:10:33 · 452 阅读 · 0 评论