Welcome 微信登录

首页 / 数据库 / MySQL

MySQL针对Discuz论坛程序的基本优化教程

MySQL针对Discuz论坛程序的基本优化教程

过了这么久,discuz论坛的问题还是困扰着很多网友,其实从各论坛里看到的问题总结出来,很关键的一点都是因为没有将数据表引擎转成InnoDB导致的,discuz在并发稍微高一点的环境下就表现的非常糟糕,产生大量的锁等待,这时候如果把数据表引擎改成InnoDB的话,我相信会好很多。这次就写个扫盲贴吧。1. 启用innodb引擎,并配置相关参数#skip-innodbinnodb_additional_mem_pool_size = 16M #一般16M也够了...
MySQL的InnoDB引擎入门学习教程

MySQL的InnoDB引擎入门学习教程

MySQL发展到今天,InnoDB引擎已经作为绝对的主力,除了像大数据量分析等比较特殊领域需求外,它适用于众多场景。然而,仍有不少开发者还在“执迷不悟”的使用MyISAM引擎,觉得对InnoDB无法把握好,还是MyISAM简单省事,还能支持快速COUNT(*)。本文是由于最近几天帮忙处理discuz论坛有感而发,希望能对广大开发者有帮助。1. 快速认识InnoDBInnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从...
安装和使用percona-toolkit来辅助操作MySQL的基本教程

安装和使用percona-toolkit来辅助操作MySQL的基本教程

一、percona-toolkit简介percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:检查master和slave数据的一致性有效地对记录进行归档查找重复的索引对服务器信息进行汇总分析来自日志和tcpdump的查询当系统出问题的时候收集重要的系统信息percona-toolkit源自Maatkit 和Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maa...
用percona-toolkit为MySQL收集系统和性能信息的教程

用percona-toolkit为MySQL收集系统和性能信息的教程

系统类工具1. pt-diskstats功能介绍:是一个对GUN/LINUX的交互式监控工具用法介绍:pt-diskstats [OPTION...] [FILES]为GUN/LINUX打印磁盘io统计信息,和iostat有点像,但是这个工具是交互式并且比iostat更详细。可以分析从远程机器收集的数据。使用示例:范例1:查看本机所有的磁盘的状态情况:pt-diskstats范例2:只查看本机sda2磁盘的状态情况pt-diskstats --device...
percona-toolkit对MySQL的复制和监控类操作教程

percona-toolkit对MySQL的复制和监控类操作教程

复制类工具1. pt-heartbeat功能介绍:监控mysql复制延迟用法介绍:pt-heartbeat [OPTION...] [DSN] --update|--monitor|--check|--stop测量复制落后主mysql或者主PostgreSQL多少时间,你可以使用这个脚本去更新主或者监控复制,具体用法见后面的示例.原理:pt-heartbeat通过真实的复制数据来确认mysql和postgresql复制延迟,这个避免了对复制机制的依赖,从而...
使用percona-toolkit操作MySQL的实用命令小结

使用percona-toolkit操作MySQL的实用命令小结

1.pt-archiver功能介绍:将mysql数据库中表的记录归档到另外一个表或者文件用法介绍:pt-archiver [OPTION...] --source DSN --where WHERE这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将数据插入另外一台服务器的其他表中,也可以写入到一个文件中,方便使用load data infile命令导入数据。另外你还可以用它来执行delete操作。这个工具默认的会删除源中的数据。使...
关于MySQL外键的简单学习教程

关于MySQL外键的简单学习教程

在MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;外键的好处:可以使得两张表关...
快速理解MySQL中主键与外键的实例教程

快速理解MySQL中主键与外键的实例教程

主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是thread.php?id=1 表示我要访问的是帖子id是1 的帖子~再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thread和 reply),这时候如果存在外键,例如,在rep...
MySQL中的唯一索引的简单学习教程

MySQL中的唯一索引的简单学习教程

mysql 唯一索引UNIQUE一般用于不重复数据字段了我们经常会在数据表中的id设置为唯一索引UNIQUE,下面我来介绍如何在mysql中使用唯一索引UNIQUE吧。创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE。把它定义为一个唯一索引。创建表时直接设置:DROP TAB...
MySQL中事务概念的简洁学习教程

MySQL中事务概念的简洁学习教程

事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。2...
Windows下MySQL日志基本的查看以及导入导出用法教程

Windows下MySQL日志基本的查看以及导入导出用法教程

MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的。1.错误日志(The error log):记录了数据库启动、运行以及停止过程中错误信息;2.ISAM操作日志(The isam log):记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模式;3.SQL执行日志(The query log):记录了客户端的连接以及所执行的SQL语句;4.更新...
MySQL下使用Inplace和Online方式创建索引的教程

MySQL下使用Inplace和Online方式创建索引的教程

MySQL各版本,对于add Index的处理方式是不同的,主要有三种:(1)Copy Table方式这是InnoDB最早支持的创建索引的方式。顾名思义,创建索引是通过临时表拷贝的方式实现的。新建一个带有新索引的临时表,将原表数据全部拷贝到临时表,然后Rename,完成创建索引的操作。这个方式创建索引,创建过程中,原表是可读的。但是会消耗一倍的存储空间。(2)Inplace方式这是原生MySQL 5.5,以及innodb_plugin中提供的创建索引的方式...
MySQL中InnoDB存储引擎的锁的基本使用教程

MySQL中InnoDB存储引擎的锁的基本使用教程

MyISAM和MEMORY采用表级锁(table-level locking)BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁各种锁特点表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生冲突的概率最高,并发度最低行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高页面锁:开销和加锁时间介于表锁和行锁之间;会出现死...
MySQL中二进制与重做日志文件的基本概念学习教程

MySQL中二进制与重做日志文件的基本概念学习教程

二进制日志二进制日志记录了所有对数据库执行更改的操作,二进制主要有以下两种作用:1、恢复(recovery)2、复制(replication)二进制日志的启动:配置参数log-bin[=name],如果不指定name,则默认二进制日志文件名为主机名,后缀名为二级制日志的序列号,所在路径为数据库所在目录。以index为后缀的文件为二进制日志的索引文件,用来存储过往生产的二进制日志。和二进制日志相关的参数:max_binlog_size、binlog_cach...
解决MySQL中的Slave延迟问题的基本教程

解决MySQL中的Slave延迟问题的基本教程

一、原因分析一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后master。ORACLE MySQL 5.6版本开始支持多线程复制,配置选项 slave_parallel_workers 即可实现在slave上多...
<< 131 132 133 134 135 136 137 138 139 140 >>