作者:

李祥敬

2010-03-04/17:57

Ubuntu mysql对于电脑使用的玩家的常用软件,然后我就学习及深入的研究Ubuntu mysql,在这里和大家一起探讨Ubuntu mysql的使用方法,希望对大家有用。

1、如果Ubuntu mysql的data数据很少,内存足够大,可以把data防止到内存盘中。linux如下设置内存盘:mount -t ramfs none /ram默认使用内存一半如果内存不够大,系统有多个硬盘,则把Ubuntu mysql应用程序和data目录分开到不同硬盘上。

2、Ubuntu mysql的表设置为myiasm,比同等条件下的innodb能快20倍以上

3、导入完成以后才创建数据库索引

4、导入完成以后根据需要转换为其他engine,比如innodb

5、多条数据插入一个表,可以使用多记录方式:insert into tablename values('xxx','xxx'),('yyy','yyy')...;

6、如果多个Ubuntu mysql执行导入,可以使用delayedinsert delayed into tablename values('sss','ssss');

7、大文件sql文件可以用split分成多份再导

8、同等条件下,redhat比ubuntu强很多(几乎肯定)

9 性能调整技巧(Performance tuning tips)

1. 如果 Unix top 或 Windows 任务管理器(Task Manager) 显示服务的 CPU 占用率小于 70%,(shows that the CPU usage percentage with your workload is less than 70 %,)你的系统瓶颈可能在磁盘读写上。或许你提交了大量的事务,或者是缓冲池(buffer pool)太小了。将缓冲池设大点会有所帮助,但一定要注意不能大于物理内存的 80%。

2. 在一个事务中包含几个修改。如果事务对数据库进行了修改,那么在这个事务提交时 InnoDB 必须刷新日志到磁盘上。因为硬盘的旋转速度通常至多为 167 转/秒,那么只要磁盘不欺骗操作系统,提交的事务数目限止也同样为 167 次/秒·用户。

3. 如果掉失最近的几个事务无所谓的话,可以在 my.cnf 文件中将参数 innodb_flush_log_at_trx_commit 设置为 0。InnoDB 无论如何总是尝试一秒刷新(flush)一次日志,尽管刷新并不能得到保证。

4. 将日志文件(log files)设大一点,使日志文件的总和正好与缓冲池(buffer pool)一样大。当 InnoDB 用光日志文件的空间时,它不得不在一个时间点上将缓冲池内修改过的内容写到磁盘上。 小的日志文件可能引起不必要的磁盘写操作。但是大的日志文件的缺点就是在数据恢复时将占用较长的时间。

5. 同样 log buffer 尽量设大点,比如说 8 MB。

6. 如果要存储变长的字符串或字段可能会包含大量的 NULLs,请使用 VARCHAR 型字段代替 CHAR 。一个 CHAR(n) 字段总是使用 n bytes 来存储数据,即使这个字符串很短或是一个 NULL 值。较小的表更加适合缓冲池同时能够减少磁盘 I/O 。

7. (适合从 3.23.41 以上版本) 在某些版本的 Linux 和 Unixes 中,使用 Unix fsync 或其它类似的方法将文件刷新到磁盘是异常地慢的。InnoDB 默认的方法就是 fsync 。如果你对数据库系统的磁盘写性能不能感到满意,你可以尝试在 my.cnf 中将 innodb_flush_method 设置为 O_DSYNC,尽管 O_DSYNC 选项在多数的系统上看起来比较慢。

8. 在向 InnoDB 导入数据时,请确认 Ubuntu mysql 没有打开 autocommit=1 。否则每个插入语句都要将 log 刷新到磁盘。在你的 SQL 导入文件的第一行加入

set autocommit=0;并在最后一行加入commit;如果使用 Ubuntu mysqldump 选项 --opt,你将会得到一个快速导入 InnoDB 表的转储(dump)文件,甚至可以不再使用上面所提的 set autocommit=0; ... commit; 。

9. 小心 insert 集全的大回滚(roolback):在插入时 InnoDB 使用插入缓冲来减少磁盘 I/O,但在相应的回滚中却没有使用这样的机制。一个 disk-bound rollback 可能会花费相应插入时间的 30 倍。如果发生一个失控的回滚,你可以查看第 6.1 章节的技巧来停止它。

10. 同样也要小心一个大的 disk-bound 的操作。使用 Drop TABLE 或 TRUNCATE (从 Ubuntu mysql-4.0 以上) 来清空一个表,而不要使用 Delete FROM yourtable。

11. 如果需要插入大量记录行可以使用多行(multi-line)的 Insert 来减少客户端与服务器端的通信开销:Insert INTO yourtable VALUES (1, 2), (5, 5);这个技巧对插入任何表均有效,而不仅仅是 InnoDB。

12. 如果在辅键上有 UNIQUE 约束,从 3.23.52 和 4.0.3 开始,可以通过在一个导入会话中将唯一键检查(uniqueness check)关闭来提高数据导入速度:SET UNIQUE_CHECKS=0;一个大的表导入这将减少大量的磁盘 I/O,因为这时 InnoDB 可能使用自身的插入缓冲来分批地记录辅助索引。

13. 如果在表中有一个子 FOREIGN KEY 约束,从 3.23.52 和 4.0.3 开始,可以通过在一个导入会话中将外键检查(foreign key check)关闭来提高数据导入速度:SET FOREIGN_KEY_CHECKS=0;对一个大的表导入这将减少大量的磁盘 I/O。

9.1 InnoDB 监视器(Monitors)从版本 3.23.42 开始,InnoDB 中就包含了 InnoDB Monitors,它可以显示出 InnoDB 的内部状态。从版本 3.23.52 和 4.0.3 开始,你可以使用一个新的 SQL 命令SHOW INNODB STATUS来读取标准 InnoDB Monitor 给 SQL client 的输出信息。这些信息对性能调整有益。

另外一个使用 InnoDB Monitors 方法就是让它在服务程序 Ubuntu mysqld 的标准输出上持续地写出信息。当开关打开时,InnoDB Monitors 大约每 15 秒显示一次数据(注意:Ubuntu mysql 的客户端并不会显示任何东西)。

一个简单地使用它的方法就是以一个命令行方式执行 Ubuntu mysqld 。否则输出将会定向到 Ubuntu mysql 服务错误日志(error log file)中 'yourhostname'.err (在 Windows 下为 Ubuntu mysql.err),在 Windows 系统中必须在 MS-DOS 使用提示符下以 --console 选项运行 Ubuntu mysqld-max 来指令信息输出在命令提示符窗口上。

显示的信息包含下列信息:

* 每一个活动的事务(active transaction)保持的表和记录锁定

* 事务的锁等待 (lock waits of a transactions)

* 线程的信号量等待 (semaphore waits of threads)

* 文件 I/O 的等待请求 (pending file i/o requests)

* 缓冲池(buffer pool)的统计信息

* InnoDB 主线程的 purge buffer 和 insert buffer 归并活动(merge activity)

通过下列的 SQL 命令,可以使标准的 InnoDB Monitor 记录到标准的 Ubuntu mysqld 的输出上:Create TABLE innodb_monitor(a int) type = innodb;通过它来停止:Drop TABLE innodb_monitor;

Create TABLE 句法只不过是为了通过 Ubuntu mysql SQL 语法分析而提供给 InnoDB 引擎命令的一种方式:那个被创建的表根本与 InnoDB Monitor 无任何关系。如果你在监视器运行着的状态下关闭数据库,并且你需要再次启动监视器, 那么你不得不在发出一个新的 Create TABLE 来启动监视器之前先移除(drop)这个表。

与之相类似的,你可以启动 innodb_lock_monitor ,它在某些方面与 innodb_monitor 一致,但是它会显示更多的锁定信息。一个单独的 innodb_tablespace_monitor 将显示在现有表空间内所建立的文件段列表以及可以分配数据结构的有效表空间。从 3.23.44 开始,提供了 innodb_table_monitor ,通过它可以获得 InnoDB 内部数据字典的信息。

ubuntu mysql 内存满了_Ubuntu mysql可以把data防止到内存盘中相关推荐

  1. ubuntu mysql怎么登录_Ubuntu MySQL 安装和用户登录

    Ubuntu MySQL 安装和用户登录,以root用户身份登录到数据库mysql之后之后,可以新建一个本地的用户jun,推出客户端之后,以jun进行 Ubuntu下安装MySQL 要安装 MySQL ...

  2. ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动

    bind-address = 127.0.0.1 => bind-address= 136.129.20.168 IP要这么改 这么改远程连不上,那么需要把这行整行注释掉,重启MYSQL,tel ...

  3. ubuntu mysql 内存满了_ubuntu – 如何为mySQL分配内存限制?

    你可以配置 >所有MyISAM >所有InnoDB > MyISAM和InnoDB的混合物 在为任一引擎分配内存之前,最好反思每个存储引擎的缓存 配置MYISAM 使用的主要机制是密 ...

  4. ubuntu mysql 改密码_ubuntu——mysql的安装(1)

    介绍:MySQL 是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP /Python/ Perl)堆栈的一部分安装.它使用关系数据库和SQL(结构化查询语言 ...

  5. ubuntu mysql 多端口_ubuntu 16.04下mysql5.7.17开放远程3306端口

    开启MySQL的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言, ...

  6. ubuntu安装mysql没反应_Ubuntu安装mysql三种安装方式

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

  7. ubuntu mysql主从备份_Ubuntu 16 MySQL主从备份配置

    环境准备 机器准备 master 192.168.1.101 slave 192.168.1.102 操作系统 Ubuntu 16 MySQL版本5.7 配置文件说明 Ubuntu中mysql配置文件 ...

  8. ubuntu mysql下载64位下载_ubuntu mysql下载|

    mysql for ubuntu是ubuntu linux系统使用的mysql server数据库客户端,这里提供的事x86和64位的程序,ubuntu 16.10 mysql的安装配置教程可以参考网 ...

  9. ubuntu中mysql怎么卸载_ubuntu下安装mysql与彻底卸载mysql方法

    ubuntu下安装mysql与彻底卸载mysql方法,该方法非常完美,小生已经使用多次,而且还推荐给好多同学使用,帮助他们解决类mysql安装的麻烦, 大家可以参考下! 1.删除 mysql 1 su ...

最新文章

  1. 关于如何换肤、子类化的解决方案
  2. 万字总结:学习MySQL优化原理,这一篇就够了!
  3. 数据解读“特殊”春运:“返乡过年”人数同比降五成,这些人成今年春运主力...
  4. numpy 矩阵计算例子
  5. jquery_选择器
  6. python编写程序计算1+2+3+......+100和_Python3:计算两个列表总和为100的所有排列的最有效方法是什么?...
  7. CSAPP-计算机漫游
  8. 在Nginx中支持HTTP3.0/QUIC
  9. Vmware拓展虚拟机硬盘容量
  10. 数据结构之 二叉树---求二叉树后序遍历和层次遍历(先建树,再遍历)
  11. Spring通过注解的形式 将bean以及相应的属性值 放入ioc容器
  12. UVA10738 Riemann vs Mertens【欧拉筛法】
  13. 关于删除 srvinstw安装的服务
  14. java运行bat_java调用bat
  15. lighty2.0沙箱版本的协议和配置分析采用ragel 成功案例
  16. 正则表达式判断手机号码
  17. python注释可用于表明作者和版权信息_vs2017 新建Class 文件时,自动添加作者版权声明注释...
  18. c语言字符大于等于怎么打,c语言大于等于怎么打?
  19. clamav查杀病毒
  20. mysql小写转大写_MySQL字符串中的大小写转换详解

热门文章

  1. 九点标定进行仿射变换halcon仿真代码
  2. C#中不常见的运算符功能汇总
  3. java 生成 tar.gz_一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包...
  4. 有这个OCR程序,不用再买VIP了,Python 调用百度OCR API
  5. csgo怎么控制电脑玩家_电脑怎么远程控制他人电脑,教您给电脑设置远程控制的方法...
  6. 第七章数组答案C语言,C语言复习题及答案-第七章-数组
  7. 几种经典的数据排序及其Java实现
  8. 2、基于wsgiref模块DIY一个web框架
  9. java 8 新特性之日期-时间 API
  10. 西门子博途编程 - 另类状态机