‘mysql’ 类别下的博文

张映 发表于 2010-08-14

分类目录: mysql

一,为什么要开启这个查询呢?

数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了。mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化。这也是发这篇博文的原因

阅读全文>>

张映 发表于 2010-08-11

分类目录: mysql

网站运行很慢的时候,我就特别起知道为什么这么慢,所以我查啊查,数据库绝对是很重要的一部分,里面运行的sql是绝对不能放过的。平时做项目的时候,我也会注意sql语句的书写,写出一些高效的sql来,所以我会经常测试自己写的sql语句。我把我知道的二个方法,总结一下发出来。

一,show profiles 之类的语句来查看

1,查一下profile是不是打开了,默认是不打开的。

阅读全文>>

张映 发表于 2010-08-11

分类目录: mysql

今天在论坛中看到一个关于mysql的问题,问题如下

good_id       cat_id
12654         665,569
12655         601,4722

goods_id是商品id
cat_id是分类id
当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)
我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了。

阅读全文>>

张映 发表于 2010-08-02

分类目录: mysql

一,先说一下为什么要分表

当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。

根据个人经验,mysql执行一个sql的过程如下:
1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时间。其实这二个是一回事,等待的同时,肯定有sql在执行。所以我们要缩短sql的执行时间。

阅读全文>>

张映 发表于 2010-05-19

分类目录: mysql

一,测试表结构

CREATE TABLE `comment` (
  `c_id` int(11) NOT NULL auto_increment COMMENT '评论ID',
  `u_id` int(11) NOT NULL COMMENT '用户ID',
  `name` varchar(50) NOT NULL default '' COMMENT '用户名称',
  `content` varchar(1000) NOT NULL default '' COMMENT '评论内容',
  `datetime` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT '评论时间',
  PRIMARY KEY  (`c_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- 导出表中的数据 `comment`
-- 

INSERT INTO `comment` (`c_id`, `u_id`, `name`, `content`, `datetime`) VALUES
(1, 1, '张映', '触发器测试', '2010-05-17 23:04:58'),
(2, 1, '张映', '111111111', '2010-05-19 23:06:05'),
(3, 1, 'tank', '使代码更简单', '2010-05-20 23:06:17');

阅读全文>>

张映 发表于 2010-04-28

分类目录: mysql

一,什么触发器

1,个人理解

触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了。你放炮仗,点燃了,一会就炸了。

2,官方定义

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

阅读全文>>

张映 发表于 2010-04-21

分类目录: mysql

以下是mysql错误对照表:
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误

阅读全文>>

张映 发表于 2010-03-05

分类目录: mysql

一,前言

装了,mysql proxy后感觉挺爽的,因为代码端就不要那边烦了。哈哈。但是实际运用时发现他慢啊,能明显感觉出来。郁闷

二,测试mysql proxy的效率情况

1),按常规方法,连接数据库

阅读全文>>

张映 发表于 2010-03-03

分类目录: mysql

一,mysql proxy是什么,干什么用的

MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多 个proxy的连接参数即可。

阅读全文>>

张映 发表于 2010-02-25

分类目录: mysql

一,mysql replication是什么,干什么用的

MySQL replication提供了数据库复制的功能,可以实现多个数据库实时同步,具体如果下图:

mysql replication 数据同步

mysql replication 数据同步

阅读全文>>