Mysql
文章平均质量分 50
回南山种豆
你是谁?你从哪里来?到哪里去?你去干什么?
展开
-
linux 下的集成测试工具
<br /> <br /> <br /> <br />测试格式<br /> <br /> 比如测试LAMP 搭建的网站之说以称为 集成是因为这里是一个整体的测试环境,下面具体说一下这里是测试百度的一个截图可以看出百度也是用的APACHE 服务器 下面下面测试一下我的LAMP document path 访问的页面<br />ducument 访问页面的字节大小<br />time taken for test 这次测试花的时间大小<br />complete 完成的请求的数量percentag原创 2011-05-15 19:29:00 · 765 阅读 · 0 评论 -
mysql 字符集设置
<br />MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: <br /> 服务器(server),数据库(database),数据表(table)和连接(connection)。<br /> 1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配转载 2011-05-18 00:41:00 · 468 阅读 · 0 评论 -
mysql 字符集设置
<br />MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: <br /> 服务器(server),数据库(database),数据表(table)和连接(connection)。<br /> 1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配转载 2011-05-18 00:41:00 · 420 阅读 · 0 评论 -
mysql 常用hint
<br />mysql常用的hint<br />对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。<br />强制索引 FORCE INDEX<br />SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …<br />以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。<br />忽略索引 IGNORE INDEX<br />转载 2011-05-20 21:11:00 · 1034 阅读 · 0 评论 -
关于mysql的一些安全细节问题
mysql的安全主要三个层次 1 网络层次,如果对一个集群建立一个局域网,减少裸露在互联网上面积会减少攻击面! 2 对操作系同级别,1如果你的一些端口没有用就别打开了 2 对登录用户严格把守,对data文件的访问权限严格限制,最好是单独的见一个用户组来作为宿主! 3 数据库级别,这是最后的一道防线,主要要下面的一些注意事项 1不要以root用户运行mys原创 2011-06-16 19:58:00 · 775 阅读 · 0 评论 -
handler
<br /> mysql 支持我们对表的数据一行一行的访问,这里主要说一下 handler 游标也可以达到<br /> 对于功能来说他们有相似之处<br />主要用法<br />打开<br />handler table open as othername<br />提取<br />handler table read first/next/priv/last [ where condition] [limit n]<br />关闭<br />handler table close<br /> <br原创 2011-05-06 20:26:00 · 520 阅读 · 0 评论 -
MySQL Proxy
What is MySQL Proxy? MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transfor转载 2011-07-12 09:54:11 · 500 阅读 · 0 评论 -
基准测试工具
不要把基准测试搞得太复杂,现在基准测试工具主要有以下:集成测试工具AB一个apache http 服务器基准测试工具,HTTP_LOAD同样是一个可以加载web全服务器的集成测试 工具,但是它可以创建一个输入文件单组建测试工具有的可以单独测试mysql 的性能mysqlslap 是一个mysql 发行包的一部分,可以仿真服务器负载并报告相关信息,可以指定相关的连接数量,可原创 2011-11-21 14:16:07 · 578 阅读 · 0 评论 -
为在innodb中什么主键用auto_increment效率会提高
auto_increment是自增量,一般是修饰int型,效率主要体现在一下几个方面1一般该列会作为索引,在innodb中,非聚簇索引是建立在聚簇索引上的,有主键就主键是聚簇索引,否i则隐藏一个唯一的列作为聚簇索引,在非聚簇索引中不是包含行指针而是会包含主键,或没有主键时会包含唯一的那个隐藏列来一起存储,这样以对主键的长度有一定的要求,越短会对索引存储空间的消耗越少,同时索引查询也会快一点。原创 2011-11-22 21:12:41 · 1173 阅读 · 0 评论 -
mysql 中的浮点和定点类型
前面一段实验是引用别人的,后面作了一点补充MySQL浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如 float(7,4)的可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。 FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度来显示,而DECIMA原创 2011-11-21 17:04:10 · 4770 阅读 · 0 评论 -
mysql 源码安装的一点说明
在网上也看了不少,现在总结以下 这里我以ubuntu 的 源码安装为例groupadd mysql // 创建一个组 useradd mysql -g mysql //创建mysql用户,并将用户指定至mysql组 tar -zxvf mysql-5.0.22.tar.gz //解压到mys原创 2011-11-23 11:39:19 · 565 阅读 · 0 评论 -
MySQL索引分析和优化
1. 索引的存储分类 MyISAM存储引擎的表的数据和索引时自动分开存储的,各自是独立的一个文件;InnoDB存储引擎的表的数据和索引时存储在同一表空间里面,但可以有多个文件组成。 MySQL中索引的存储类型目前只有两种(BTREE和HASH),具体和表的存储引擎相关;MyISAM和InnoDB存储引擎都只支持BTREE索引;MEMORY/HEAP存储引擎可以支持HASH和BTR转载 2011-11-25 13:41:32 · 566 阅读 · 0 评论 -
mysql 查询优化的过程
它有几个子过程:解析,预处理,优化首先mysql将查询分解为一个标识符,然后构造一颗解析树,解析器使用mysql的语法解析和验证查询,需要保证解析中的查询标识都是有效的,同时也会检查语句中的错误然后预处理器检查简析器生成的简析树,解决解析器中无法解析的语义,最后预处理器检查权限,如果解析树通过了验证,并且准备让优化器把他变成执行计划,一个查询有多种执行方式,虽然得到的是同样的结果,这就是优原创 2011-11-25 22:18:13 · 550 阅读 · 0 评论 -
记录 mysql 查询优化器的一点理解
mysql 查询优化器有几个目标,但是最重要的还是尽可能的利用索引,从explain分析给出的信息 就能从侧面反应,这里对索引的使用说明比较多,一般索引用来排除你不需要的记录的速度很快,比如 select col1 from tablexx where condition limit 100000,10 这种语句,如果利用索引前面100000条记录就很容易被过滤掉,今天看了一点资料是关于my原创 2011-11-25 16:40:16 · 607 阅读 · 0 评论 -
mysql 中的 in
mysql中的in不能等同于多个or,虽然逻辑上他们是一样的,但是在优化器对数据 处理的时候,原理不一样in mysql 会对in里面的数据排序,然后用二分查找,查找某个值是否在列表中,算法的效率是o(log(n)),or or的查找效率是o(n),所以在数据很大时,in 的效率会更高。原创 2011-11-29 20:07:28 · 593 阅读 · 0 评论 -
mysql 联合查询
mysql 总是创建和填充临时表来执行union,他不能执行太多的优化,有时可以人为第把一些能够优化的条件放在union 的select子句中,比如 wehre ,order by ,limit 等,一般union all 的效率比union 的效率高,在union all 时,就是简单的结果集合并,没有必要时不推介用 union,在union 中,union 会在临时表里面添加原创 2011-12-04 11:05:07 · 591 阅读 · 0 评论 -
mysql SQL cache
Query Cache(QC) 有如下规则,如果数据表被更改,那么和这个数据表相关的全部Cache全部都会无效,并删除之。这里“数据表更改”包括: INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等。举个例子,如果数据表posts访问频繁,那么意味着它的很多数据会被QC缓存起来转载 2011-12-04 23:06:25 · 528 阅读 · 0 评论 -
mysql 缓存如何使用内存
先说明2点 开启缓存也会带来开销,主要表现在一下方面 读取在查询开始之前必须要检查缓存如果查询是缓存的,但是不在结果集中,那么产生结果后保存数据会带来一定的开销向缓存写如数据也会带来开销有的情况查询缓存不会被缓存,即使你使用 SQL_CACHE也不能缓存主要一下几个引用了用户自定义函数引用了用户自定义变量以用了存续过程查询中包含一些实时的系统函数,比原创 2011-12-04 22:45:23 · 1905 阅读 · 0 评论 -
MySQL中的MVCC
Mysql到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从Mysql源码中寻找答案。在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段:6字节的事务ID(DB_TRX_ID )7字节的回滚指针(DB_ROLL_PTR) 隐藏的ID6字节的事物ID用来标识该行所述的事务,7字节的回滚指针需要了转载 2011-12-17 15:10:45 · 740 阅读 · 0 评论 -
mysql 减少缓存碎片
没有办法避免所有的碎片,但是仔细选择query_cache_min_res_unit 可以有效的避免内存浪费,query_cache_min_res_unit 过大会产生内存浪费和碎片,query_cache_min_res_unit 过小导致内存经常allocate 也回带来性能影响,所以query_cache_min_res_unit 的设置很关键。 要找一个既能减少碎片,又能避免原创 2011-12-14 16:35:34 · 1069 阅读 · 1 评论 -
InnoDB Double Write
记得刚开始看InnoDB文档的时候,Double Write一节(其实只有一小段)就让我很困惑。无奈当时内力太浅,纠缠了很久也没弄明白。时隔几个月,重新来整理一下。涉及到的概念:Buffer Pool简称BP,Dirty Page,Log file,Flush,innodb tablespace。1. 什么是Double Write在InnoDB将BP中的Dirty Page刷(f转载 2011-12-25 21:38:08 · 1134 阅读 · 1 评论 -
mysql 合并表
mysql创建合并表和分区表有点相似,他是mysql 的一种特性,可以把多个结构相同的myisam表合并为一个虚表,存续引擎必须是merge,当从合并表中查询就像从子表中查询一样,和视图有写相似,当创建合并表时也有自己的frm和mrg 文件。合并表创建方法create table t3(a int primary key );create table t4(a int prim原创 2011-12-24 13:09:27 · 11590 阅读 · 0 评论 -
mysql 分布式事务(xa)
这是写的一个测试分布式事务的脚本,参考了网上的一个脚本,但是那个在我这里脚本不能正常执行,就自己改了一下$mapfarm = new mysqli("10.128.51.121","public","public","db1")or die("$mapfarm : 连接失败");$map = new mysqli("10.128.51.121","public","pub转载 2011-12-24 14:45:30 · 3253 阅读 · 0 评论 -
mysql 语句的调度优先级及改变
MySQL的默认的调度策略可用总结如下:· 写入操作优先于读取操作。· 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。· 对某张数据表的多个读取操作可以同时地进行。MySQL允许你改变语句调度的优先级MySQL提供了几个语句调节符,允许你修改它的调度策略:· LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DAT原创 2011-12-27 20:59:00 · 1084 阅读 · 0 评论 -
对replication slave,replication client的一点说明
如果你之前是认为replication slave 是复制所必须的权限,那么你就错了,为了安全性一般都需要replication slave 。如果单独设置replication slave,replication client 复制其实都可以运行的。mysql有一些特殊的权限允许复制进程运行,运行在从服务器上的I/O线程创建了到master的连接,这就意味着必须在主服务器上创建一个用户并且需要授原创 2012-01-08 11:48:48 · 15081 阅读 · 2 评论 -
innoDb 的多线程并发调优
innodb 本来就好似对高并发设计的,但是不是能应对所有的高并发,你可以对部分就像调优 首先说明3个参数 innodb_thread_concurrency :并发线程数量innodb _thread_sleep_delayinnodb_concurrency_ticketsinnodb用自己的线程调度机制来控制线程如何进入innodb 内核工作,并执行相关的操作原创 2011-12-30 19:33:38 · 9297 阅读 · 0 评论 -
mysql-proxy 在UBUNTU 下安装和测试
Ubuntu 9.04安装Mysql Proxy Lua是本文要介绍的内容,主要是来了解Mysql Proxy在Ubuntu 9.04下的安装环境,并且已经通过测试,具体内容来看本文详解。安装mysql1、1. apt-get install mysql-server mysql-client libmysqlclient15-dev 2、进入1.转载 2012-02-19 20:45:15 · 2079 阅读 · 0 评论 -
mysql相关的日志文件
mysql相关的日志文件 Mysql的日志文件种类比较多,有的日志文件记录了mysql的服务状态以及mysql在工作中产生的系统信息,我们利用这些信息可以更方便的对mysql服务进行运维,但是有的日志文件如果我们进行了不正确的配置将对mysql的服务器主机造成不良的后果,下面我们就来看看mysql有哪些日志文件以及他们的各自的作用。 Mysql相关的日志文件,主要有两大类:事务日志转载 2012-02-19 13:47:39 · 663 阅读 · 0 评论 -
重装系统后怎么进入mysql
平台:windows 7因为系统重装后,会改变相应的注册表,所以现在mysql还没有注册为服务,需要通过mysqld-nt.exe -install 把mysql注册为服务,如果成功的话会显示 Service successfully installed在这之前最好将mysqld-nt.exe -remove将可能存在服务的删除,一般重装系统后还需要将你的my.ini配置放在C盘的原创 2012-02-28 20:46:04 · 2719 阅读 · 2 评论 -
WINDOWS MYSQL 跳过权限检查
如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置:LINUX: 1. KILL掉系统里的MySQL进程; 2. 用以下命令启动MySQL,以不检查权限的方式启动; mysqld_safe -skip-grant-tables & 或是 修改/etc/my.cnf文件,在[mysqld]下添加 sk转载 2012-02-28 20:47:10 · 8643 阅读 · 0 评论 -
由浅入深理解索引的实现
本文是该系列文章的第二部分,点击阅读第一部分:由浅入深理解索引的实现 教科书上的B+Tree是一个简化了的,方便于研究和教学的B+Tree。然而在数据库实现时,为了更好的性能或者降低实现的难度,都会在细节上进行一定的变化。下面以InnoDB为例,来说说这些变化。 04 - Sparse Index中的数据指针 在“由浅入深理解索引的实现第一部分”中提到,Sparse In转载 2012-03-02 00:22:59 · 739 阅读 · 0 评论 -
用VC++编译mysql
使用VC++构建MySQL注释:MySQL 4.1和以上版本的VC++工作区文件与Microsoft Visual Studio 2003版本兼容,MySQL AB人员已经在每个版本之前进行了测试。按照以下步骤构建MySQL:1. 创建工作目录(例如,C:\workdir)。2. 使用WinZip或其它可以读取.zip文件的Windows工具将源码分发版解压缩到上述目录原创 2012-03-07 00:14:02 · 1695 阅读 · 0 评论 -
mysql_install_db
Windows下安装在Windows中,不需要创建数据目录和授权表。MySQL Windows分发版包括在数据目录下的MySQL数据库中的一套预初始化的账户的 授权表。不要运行Unix中使用的mysql_install_db脚本。但是,如果你没有使用Windows Installation Wizard(安装帮助)来安装MySQL,应当为账户指定密码,有时候你的bin目录下也会有m原创 2012-03-07 21:10:32 · 3904 阅读 · 0 评论 -
MySQL为什么要引入Thread Pool的线程处理模式
从5.5.16开始,在MySQL的商业化版本中将Thread Pool作为plugin提供官方功能支持。在之前的版本中,线程处理模式包括两种:no-threads(单线程处理,多用于debug)、one-thread-per-connection(每个请求对应一个线程,目前被作为默认值);在支持thread pool功能的版本中,thread_handling则需设置为dynamically-lo转载 2012-03-09 11:25:56 · 5573 阅读 · 0 评论 -
mysql 的max_connections和max_user_connections 的区别
在mysql的手册中已经对max_user_connections有一点说明,它是用来限制用户资源的,怎么限制用户资源呢?这里做了个小测试。首先产看该全局变量的值mysql> select @@max_user_connections;+------------------------+| @@max_user_connections |+-------------------原创 2012-03-12 20:17:06 · 32771 阅读 · 0 评论 -
mysql-proxy学习
使用MySQL将读写请求转接到主从Server。 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用。 解压缩的目录为: $mysql-proxy_installed_dir (这里为/usr/local/mysql-proxy) |_ bin |_ include |_ lib |_ share 1转载 2012-03-28 21:45:33 · 750 阅读 · 0 评论 -
mysql-proxy学习之配置文件
mysql-proxy启动时需要一个配置文件,你可以将你的全部选项放在你的配置文件里面,这样启动时比较方便,比如下面这样: /usr/local/sbin/mysql-proxy--proxy-address=192.168.0.2:3306--proxy-backend-addresses=127.0.0.1:3000--proxy-backend-addresses=原创 2012-03-29 13:41:55 · 4093 阅读 · 0 评论 -
mysql cluster 集群配置文件
mysql cluster集群配置文件主要有两个,对于sql 和ndb节点一般只需要在my.cnf中配置[mysqld]ndbcluster //运行NDB 引擎ndb-connectstring=ndb_mgmd.mysql.com:1186 //连接的主机,默认情况下是1186端口监听,构成MySQL簇的每个节点均需要1个连接字符串,该连接字符串指向管理服务器所在的位置。它用原创 2012-04-06 16:24:27 · 1239 阅读 · 0 评论 -
Mysql 临时表及特点
临时表是当连接没有断开时存在,一旦断开就不会存在,临时表的数据和结构都在内存中,可以做个测验,你创建一个临时表,但是到响应的数据目录下并不会找到.frm文件mysql> CREATE TEMPORARY TABLE tmp_table ( -> -> name VARCHAR(10) NOT NULL, -> value INTEGER NOT NULL原创 2012-04-09 00:36:46 · 883 阅读 · 0 评论 -
msyql 各种time out
“And God said, Let there be network: and there was timeout”在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?本期Out-man,讲述咱们MySQL DBA自己的Timeout。先看一下比较常见的Timeout参数和相关解释:转载 2012-04-09 20:47:41 · 664 阅读 · 0 评论