分类 数据库 下的文章

MySQL数据库存储引擎选择 - 性能优化

MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系。由于各存储引擎功能特性差异较大,这篇文章主要是介绍如何来选择合适的存储引擎来应对不同的业务场景。MyISAM特性:不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用表级锁定:其锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能读写互相阻塞:不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读只会缓存索引:MyISAM可以通过key_buffer缓存以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据适用场景:不需要事务支持(不支...

继续阅读 »

MySQL触发器语句代码在线生成-源码(PHP版)

MySQL触发器 触发程序语句代码自动生成源码(PHP版),实现数据同步点击进入在线编解码工具页面>>><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>MySQL 触发器(TRIGGER)语句代码在...

继续阅读 »

MySQL触发器 触发程序 详解及实例

MySQL触发程序--触发器(TRIGGER)详解及实例触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。Mysql5之后开始支持触发器,并且在创建触发器后会自动在/var/lib/mysql目录下生成TRG以及TRN文件(Linux下)你必须拥有足够的权限才能创建触发器(CREATE TRIGGER),如果你已经是root用户,那么就足够了。这跟SQL的标准有所不同。MySQL触发器 触发程序语句代码在线生成基本语法:CREATE TRIGGER <触发器名称>   //触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.trigger_time触发程序的动作时间:{ BEFORE |...

继续阅读 »

MySQL 多实例配置指南

Mysql具有一次安装可以运行多个实例的功能,简单的说,MySQL可以以多实例的方式,实现一台服务器,运行在不同端口不同数据文件的MySQL,它们是相互独立的。每个实例的datadir,pid,port,socket是不同的。本文将通过两种方法阐述MySQL多实例的配置。如果你看到这篇文章,未来往事推荐选择方法一进行实施MySQL多实例配置,便于后期的自动化、高效运维管理。为什么要这样做?这样做的好处是什么?1、提高CPU的利用率;2、其实配置mysql多实例运行就是新建数据库存放的位置和监听的socket端口,这样当client连接时就会经由不同的端口访问新建的数据库。创建多实例可以通过下载源码重新编译安装,这样做的好处是可以加入新数据库需要的特别配置。…………………………方法/方案一:首先我们明确一些...

继续阅读 »

mysql连接类型与socket通信原理说明

MySQL连接类型中的localhost与127.0.0.1、IP区别:localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。 看来这个入门问题还有人不清楚,其实这两者是有区别的。NO.1 - 普通接说:localhost也叫local ,正确的解释是:本地服务器127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)NO.2:localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网...

继续阅读 »

my.cnf 配置文件中文参考手册 - MySQL配置文件详解

my.cnf 配置文件中文参考手册 - MySQL配置文件详解#BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO## 此mysql配置文件例子针对4G内存# 主要使用INNODB# 处理复杂队列并且连接数量较少的mysql服务器## 将此文件复制到/etc/my.cnf 作为全局设置,# mysql-data-dir/my.cnf 作为服务器指定设置# (@localstatedir@ for this installation) 或者放入# ~/.my.cnf 作为用户设置.## 在此配置文件中, 你可以使用所有程序支持的长选项.# 如果想获悉程序支持的所有选项# 请在...

继续阅读 »

thread_concurrency参数 - MySQL性能优化参数

在很多mysql系统配置文件中,都设置了thread_concurrency参数,具体修改方法是:[mysqld]thread_concurrency=8设置thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那么thread_concurrency的应该为4; 2个双核的cpu, thread_concurrency的值应为8.”这里记录下MySQL5.5文档中的一段说明,thread_c...

继续阅读 »

MySQL慢日志分析工具mysqlsla安装及使用指南

MySQL慢日志分析工具mysqlsla安装及使用详细说明最后更新时间:2013-01-29  • 2013-01-18 首次整理成文档  • 2013-01-29 发布到博客并整理添加了实例及工具对比表一、MySQL慢日志分析意义在运营 PHP+MySQL 网站的过程中,可能会遇到网站突然变慢的问题,一般情况下和 MySQL 慢有关系,可以通过开启慢查询来记录超过指定时间的SQL语句,MySQL慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,找到影响效率的SQL语句,然后采取相应的措施进行代码或缓存等优化,从而提高整个系统的性能。关于MySQL慢查询记录日志启用可以参考这篇文章:《MySQL开启慢查询日志记录 - MySQL优化》二、常见的5种MySQL日志文件分析...

继续阅读 »

MySQL存储引擎: InnoDB 还是 MyISAM?

MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。下面先让我们回答一些问题:你的数据库有外键吗?你需要事务支持吗?你需要全文索引吗?你经常使用什么样的查询模式?你的数据有多大?思考上面这些问题可以让你找到合适的方向,但那并不是绝对的。如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。如果你需要全文索引,那么通常来说 MyISAM是好的选择,因为这是系统内建的,然而,我们其实并不会经常地去测试两百万行记录。所以,就算是慢一点,我们可以通过使用Sphinx从InnoDB中获得全文索引。数据的大小,是一个影响你选择什...

继续阅读 »

MySQL开启慢查询日志记录 - MySQL参数

MySQL慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添加log-slow-queries和long_query_time两个参数即可。Windows下开启MySQL慢查询MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上long_query_time = 2    //查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录log-slow-queries[=file_name]   ...

继续阅读 »

MySQL修复数据表的两个常用命令

在长时间使用MySQL后,数据库可能会出现一些问题。大多数问题可以通过简单的操作进行快速修复。下面介绍两种MySQL修复表的方法。1. myisamchk使用myisamchk必须暂时停止MySQL 服务器。例如,我们要检修blog数据库。执行以下操作:# service mysql stop (停止MySQL)# myisamchk -r /datawhere/blog/*MYI# service mysql start myisamchk 会自动检查并修复数据表中的索引错误。2. mysqlcheck使用mysqlcheck无需停止MySQL,可以进行热修复。操作步骤如下:(检修 blog库)# mysqlcheck -r -uroot -p blog注意,无论是 myisamchk还是mysqlch...

继续阅读 »

MySQL常用查看数据库 数据表的命令

MySQL数据库查看数据库 数据表的命令。进入MySQL Command line client下查看当前使用的数据库:mysql>select database();mysql>status;mysql>show tables;mysql>show databases;//可以查看有哪些数据库,返回数据库名(databaseName)mysql>use databaseName;  //更换当前使用的数据库mysql>show tables; //返回当前数据库下的所有表的名称或者也可以直接用以下命令mysql>show tables from databaseName;//databaseName可以用show databases得来mys...

继续阅读 »

MySQL数据库建表语句实例

MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看。1、最简单的:CREATE TABLE t1(    id int not null,    name char(20));2、带主键的:a:CREATE TABLE t1(    id int not null primary key,    name char(20));b:复合主键CREATE TABLE t1(    id int not null, ...

继续阅读 »