为什么最新的mysql过两三天就用不了啦

为什么最新的mysql过两三天就用不了啦,第1张

图1.1 MySQL5.6

目前针对不同用户,MySQL提供了2个不同的版本:

Ø MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。

Ø MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。

目前最新的MySQL版本为MySQL 5.6,可以在官方网站http://dev.mysql.com/downloads/下载该软件。下图1.2所示的MySQL官网上单击图片上的“Download”超链接 或 点击左边标记处,然后按照提示一步步 *** 作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。

图1.2 MySQL官方网站

图1.3 选择MySQL版本

Ø 当点击download后会d出如下页面:

注:下载MySql要求注册:<用户可注册或不注册>,如果不想注册就点击左下角标记处—点击后就

d出如图中下载提示->点击保存文件开始下载。

Ø MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装:

步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1)会d出如下图1.4所示:

图1.4 MySQL欢迎界面

步骤2:单击图1.4中的“Install MySQL Products” 文字,会d出的用户许可证协议窗口,

如下图1.5所示:

图1.5 用户许可证协议窗口

步骤3:选中“I accept the license terms” 的前面的选择框,然后点击【Next】按钮,会进入查

找最新版本界面,效果如下图1.6所示:

图1.6 查找最新版本窗口

步骤4:单击【Execute】按钮,会进入安装类型设置界面,效果如下图1.7所示。

图1.7 安装类型设置窗口

表1-1 安装类型界面各设置项含义

选项

含义

Developer Default

默认安装类型

Server only

仅作为服务器

Client only

仅作为客户端

Full

完全安装类型

Custom

自定义安装类型

Installation Path

应用程序安装路径

Data Path

数据库数据文件的路径

步骤5:选择图1.7中的“Custom”选项,可修改安装路径或保持默认值,然后单击【Next】按钮,

d出功能选择界面,如下图1.8所示。

图1.8 功能选择窗口

步骤6:单击【Next】按钮,d出安装条件检查界面,如下图1.9所示。

图1.9 安装条件检查界面

步骤7:单击【Next】按钮,进行安装界面,如下图1.10所示。

图1.10 程序安装界面

步骤8:单击【Execute】按钮,开始安装程序。当安装完成之后安装向导过程中所做的设置将在安装完成

之后生效,如下图1.11所示的窗口

图1.11 程序安装成功界面

步骤9:单击【Next】按钮,会进入服务器配置页面,效果如下图1.12所示。

图1.12 服务器配置页面

步骤10:单击【Next】按钮,效果如下图1.13所示。

图1.13 配置页面一

图1.13中的“Server Configuration Type”下面的“Config Type”下拉列表项用来配置当着服务器的类型。选择哪种服务器将影响到MySQL Configuration Wizard(配置向导)对内存、硬盘和过程或使用的决策,可以选择如下所示的3种服务器类型:

Ø Developer Machine(开发机器):该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。

Ø Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其它应用程序一起运行,例如FTP、email和web服务器。MySQL服务器配置成使用适当比例的系统资源。

Ø Dedicated MySQL Server Machine(专用MySQL服务器):该选项代表只运行MySQL服务的服务器。假定运行没有运行其它应用程序。MySQL服务器配置成使用所有可用系统资源。

作为初学者,选择“Developer Machine”(开发者机器)已经足够了,这样占用系统的资源不会很多。在Enable TCP/IP Networking左边的复选框中可以启用或禁用TCP/IP网络,并配置用来连接MySQL服务器的端口号,默认情况启用TCP/IP网络,默认端口为3306。要想更改访问MySQL使用的端口,直接在文本输入框中输入新的端口号即可,但要保证新的端口号没有被占用。

步骤11:单击【Next】按钮,在图1.13所对应的界面中,我们需要设置root用户的密码,在“MySQL Root password”(输入新密码)和“Repeat Password”(确认)两个编辑框内输入期望的密码。也可以单击下面的【Add User】按钮另行添加新的用户。(注:Current Root Password:为空;如果输入密码了在后面安装会报错)

以下是成功添加用户

图1.13 配置页面二

步骤12:单击【Next】按钮,设置Windows Service Name<可默认>,此名为启动数据库服务名,要记住。

效果如下图1.14所示。

图1.14 配置页面三

步骤13:单击【Next】按钮,打开配置信息显示页面,如下图1.15所示。

Next点击

图1.15 配置信息显示页面

步骤14:单击【Next】按钮,即可完成MySQL数据库的整个安装配置过程。之后启动数据库服务命令再

打开任务管理器,可以看到MySQL服务进程mysqld.exe已经启动了,如1.16所示。

在开始菜单栏->附件->右键命令提示符->以管理员身份运行:net start MySQL56 为启动数据库服务命令;

net stop MySQL56 为停止数据库服务命令。

Ø 到此为止,我们已经在Windows上顺利的安装了MySQL。 接下来就可以启动MySQL服务与登录数据库进行自己的 *** 作了。

TokuDB引擎是有Tokutek开发的一个数据库存储引擎,在设计之初便引入了独特的索引算法,在其 官网 测试中, 文章 中看到TokuDB性能比InnoDB高出很多。

MySQL

是一个插件式的数据库,在MySQL5.5版本之前MyISAM是MySQL的默认存储引擎,在之后的版本中默认的存储引擎变成了InnoDB。其特点是

它支持事务,具有完善的崩溃恢复机制,具体的特点这里不说明,可以自行的寻找资料。这里介绍的TokuDB和InnoDB有很多相似之处:一个高性能,支

持事务、MVCC、聚簇索引等。最大的不同在于TokuDB采用了一种叫做Fractal

Tree的索引结构,使其在随机写数据的处理上有很大提升。一般来说数据库的索引结构都采用B+Tree或则类似的数据结构,InnoDB也是如此。

InnoDB是以主键组织的B+Tree结构,数据按照主键顺序排列。对于顺序的自增主键有很好的性能,但是不适合随机写入,大量的随机I/O会使数据页

分裂产生碎片,索引维护开销很多大。而TokuDB的Fractal Tree的索引结构很好的解决了这个问题。

TokuDB解决随机写入

的问题得益于其索引结构,Fractal Tree 和

B-Tree的差别主要在于索引树的内部节点上,B-Tree索引的内部结构只有指向父节点和子节点的指针,而Fractal

Tree的内部节点不仅有指向父节点和子节点的指针,还有一块Buffer区。当数据写入时会先落到这个Buffer区上,该区是一个FIFO结构,写是

一个顺序的过程,和其他缓冲区一样,满了就一次性刷写数据。所以TokuDB上插入数据基本上变成了一个顺序添加的过程。

TokuDB另一

个特点是压缩性能和低CPU消耗,TokuDB存储引擎默认的块大小是4M,这使其有更好的压缩效率。默认支持压缩功能,不需要配置其他的东西。压缩选项

有:TokuDB_Quicklz、TokuDB_Lzma、TokuDB_Zlib,同时也支持非压缩选项。TokuDB_Zlib支持的默认压缩格

式。一般压缩都需要消耗更多的CPU。但TukuDB消耗的CPU资源较少。

安装

为了方便安装,直接在percona版本的MySQL上安装TokuDB存储引擎。Ubuntu下apt安装percona MySQL:

http://www.percona.com/doc/percona-server/5.6/installation/apt_repo.html

vi /etc/apt/sources.list.d/percona.list

deb http://repo.percona.com/apt trusty main

其他:添加其他软件的更新,和本次安装无关

vi /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu trusty main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu trusty-updates main restricted universe multiversedeb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

源添加完毕之后更新:

apt-get update

最后apt安装percona MySQL:

apt-get install percona-server-server-5.6 percona-server-client-5.6

以上percona MySQL安装完毕,接着就开始安装TokuDB。

参考官网的安装说明: https://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_installation.html

安装TokuDB的前提条件是需要支持jemalloc,需要关闭 Transparent huge pages ,执行:

echo never >/sys/kernel/mm/transparent_hugepage/enabledecho never >/sys/kernel/mm/transparent_hugepage/defrag

效果:

root@ptest:~# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise [never]root@ptest:~# cat /sys/kernel/mm/transparent_hugepage/defragalways madvise [never]

开始apt安装TokuDB:

root@ptest:~# apt-get install percona-server-tokudb-5.6

安装好检查:

root@ptest:~# ps_tokudb_admin --enable -uroot -pEnter password:Continuing without password...Checking if Percona server is running with jemalloc enabled...grep: /proc/5440/environ: Permission denied>>Percona server is running with jemalloc enabled.Checking transparent huge pages status on the system...>>Transparent huge pages are currently disabled on the system.Checking if thp-setting=never option is already set in config file...>>Option thp-setting=never is not set in the config file.>>(needed only if THP is not disabled permanently on the system)Checking TokuDB plugin status...>>TokuDB plugin is installed.Adding thp-setting=never option into /etc/mysql/my.cnf>>Successfuly added thp-setting=never option into /etc/mysql/my.cnf #把参数thp-setting=never加载到了my.cnf的[mysqld_safe]的选项组下

通过show engines、show plugins 查看存储引擎,是否安装成功,要是没有成功则检查上面是否有错误。要是通过show engines没有TokuDB,但通过show plugins有则需要手动install:

INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so'INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so'

查看版本:

>SELECT @@tokudb_version+------------------+| @@tokudb_version |+------------------+| tokudb-7.5.6 |+------------------+

以上就完成了TokuDB的安装。详细信息请见 官网 。

测试:针对插入、压缩、存储引擎转换、事务、复制等日常用到的功能进行测试。

1)插入和压缩性能:压缩参数: tokudb_row_format

zjy@127.0.0.1 : test 10:58:58>show create table login_log_Toku/G*************************** 1. row *************************** Table: login_log_TokuCreate Table: CREATE TABLE `login_log_Toku` (`userID` varchar(255) NOT NULL,`tryIP` varchar(255) DEFAULT NULL,`tryTime` datetime DEFAULT NULL,`tryResult` tinyint(1) DEFAULT '0',`refferUrl` varchar(255) DEFAULT NULL,`sID` int(10) unsigned NOT NULL AUTO_INCREMENT,`authType` tinyint(1) DEFAULT '1',`type` tinyint(1) DEFAULT '1',`deviceType` varchar(64) DEFAULT '',PRIMARY KEY (`sID`),KEY `idx_tryip` (`tryIP`),KEY `idx_userid` (`userID`),KEY `idx_tryTime` (`tryTime`)) ENGINE=TokuDB DEFAULT CHARSET=utf81 row in set (0.01 sec)ERROR:No query specifiedzjy@127.0.0.1 : test 10:59:45>insert into login_log_Toku select * from login_logQuery OK, 49534274 rows affected (18 min 35.63 sec)Records: 49534274Duplicates: 0Warnings: 0zjy@127.0.0.1 : test 11:18:40>create table login_log_innodb like login_logQuery OK, 0 rows affected (0.11 sec)zjy@127.0.0.1 : test 11:27:58>insert into login_log_innodb select * from login_logQuery OK, 49534274 rows affected (2 hours 1 min 34.06 sec)Records: 49534274Duplicates: 0Warnings: 0zjy@127.0.0.1 : test 01:29:38>create table login_log_myisam like login_logQuery OK, 0 rows affected (0.15 sec)zjy@127.0.0.1 : test 08:56:30>alter table login_log_myisam engine = myisamQuery OK, 0 rows affected (0.10 sec)Records: 0Duplicates: 0Warnings: 0zjy@127.0.0.1 : test 08:56:51>insert into login_log_myisam select * from login_logQuery OK, 49534274 rows affected (14 min 25.44 sec)Records: 49534274Duplicates: 0Warnings: 0

上面看到写入TokuDB表的时间远远小于InnoDB,MyISAM(堆表)的写入也比InnoDB好很多。

-rw-rw---- 1 mysql mysql 8.7K5月7 23:27 login_log_innodb.frm-rw-rw---- 1 mysql mysql 9.7G5月8 03:12 login_log_innodb.ibd-rw-rw---- 1 mysql mysql 8.7K5月8 08:56 login_log_myisam.frm-rw-rw---- 1 mysql mysql 3.8G5月8 09:00 login_log_myisam.MYD-rw-rw---- 1 mysql mysql 1.7G5月8 09:11 login_log_myisam.MYI-rw-rw---- 1 mysql mysql 8.7K5月8 16:43 login_log_Toku.frm

查看文件,看到InnoDB所占的空间比MyISAM大,9.7>5.5。TokuDB在数据库目录下面只保存.frm表结构定义文件,其数据保存在数据库的目录的上一层:

ls -lh *toku*-rw------- 1 mysql mysql12K5月 12 17:00 log000000000005.tokulog27-rw-rw---- 1 mysql mysql64K5月8 16:43 _test_sql_c80_2a_status_34_1_1b.tokudb-rw-rw---- 1 mysql mysql 265M5月8 16:43 _test_login_log_Toku_key_idx_tryip_3c_1_1b_B_1.tokudb-rw-rw---- 1 mysql mysql 229M5月8 16:43 _test_login_log_Toku_key_idx_tryTime_3c_1_1b_B_3.tokudb-rw-rw---- 1 mysql mysql 282M5月8 16:43 _test_login_log_Toku_key_idx_userid_3c_1_1b_B_2.tokudb-rw-rw---- 1 mysql mysql 1.4G5月8 18:25 _test_login_log_Toku_main_3c_1_1b_B_0.tokudb-rw-rw---- 1 mysql mysql17K5月7 17:10 _test_ttt_main_5_1_1b_B_0.tokudb-rw-rw---- 1 mysql mysql16K5月7 17:10 _test_ttt_status_3_1_1b.tokudb-rw-rw---- 1 mysql mysql32K5月8 16:43 tokudb.directory-rw-rw---- 1 mysql mysql16K5月7 17:09 tokudb.environment-rw------- 1 mysql mysql05月7 17:09 __tokudb_lock_dont_delete_me_data-rw------- 1 mysql mysql05月7 17:09 __tokudb_lock_dont_delete_me_environment-rw------- 1 mysql mysql05月7 17:09 __tokudb_lock_dont_delete_me_logs-rw------- 1 mysql mysql05月7 17:09 __tokudb_lock_dont_delete_me_recovery-rw------- 1 mysql mysql05月7 17:09 __tokudb_lock_dont_delete_me_temp-rw-rw---- 1 mysql mysql32K5月8 16:43 tokudb.rollback

从上面看出,TokuDB的索引文件和数据文件是分开的,一个索引一个文件。总共大小为2.2G,最小。其他为TokuDB的日志文件和一些元数据。

要求精度高就用decimal

审题错了...

简单写下区别:

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

numberic === decimal

float f = 345.98756f//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double d=345.975423578631442d//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

注:float和double的相乘 *** 作,数字溢出不会报错,会有精度的损失。

decimal dd=345.545454879.....//可以支持28位,对最后一位四舍五入。

注:当对decimal类型进行 *** 作时,数值会因溢出而报错。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6196038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存