- 浏览: 68448 次
- 性别:
- 来自: 北京
最新评论
-
longhua828:
有实际的应用意义吗?
关于MySQL分页的优化 -
iaimstar:
ray_linn 写道重庆算南方???
对我来说相当南
便秘_黑芝麻 -
ray_linn:
重庆算南方???
便秘_黑芝麻 -
robbin:
多喝喝蜂蜜会治愈便秘的。
便秘_黑芝麻 -
抛出异常的爱:
可以吃点红萝卜蒸煮都可。
便秘_黑芝麻
文章列表
今天遇到最棘手的问题,就是网站速度很慢,并且是一阵一阵的,用show processlist,
也有可能遭到攻击,对sql进行了优化,尽量减少嵌套查询,而是采用空间换时间,新建表,通过任务更新到新表
processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。
1. 进入mysql/bin目录下输入mysqladmin processlist;
2. 启动mysql,输入show processlist;
如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL ...
- 2009-10-20 10:04
- 浏览 615
- 评论(0)
完成相同功能,二种不同方式;
下一种速度快一些;
1. mysql> select * from wanyouxi where youxitag='bird' ORDER BY credits desc limit 1;
2. +-------+------+--------+------------+---------+------------+------+-----+------+
3. | id | uid | gameid | youxitag| credits | dateline | type | ...
- 2009-10-20 09:59
- 浏览 1352
- 评论(0)
* 未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
* 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别
* 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读
* 串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
查看InnoDB系统级别的事务隔离级别:
mysql> SE ...
- 2009-10-20 09:58
- 浏览 1080
- 评论(0)
MySQL压力测试工具mysqlslap
作者:NinGoo | 【转载须以超链接形式标明文章原始出处和作者信息】
MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。
–auto-generate-sql, -a
自动生成测试表和数据
–auto-generate-sql-load-type=type
测试语句的类型。取值包括:read,key,write,update和m ...
- 2009-10-20 09:45
- 浏览 1065
- 评论(0)
MySQL的客户端命令行工具,有很多方便使用者的特性,某些方面甚至可以说比Oracle的sqlplus更加人性化。当然从整体来说,还是sqlplus更加方便些,这么说或许是我对sqlplus更加熟悉吧。这里记录下MySQL命令行几个比较常用的特性。
1.使用\G按行垂直显示结果
如果一行很长,需要这行显示的话,看起结果来就非常的难受。在SQL语句或者命令后使用\G而不是分号结尾,可以将每一行的值垂直输出。这个可能也是大家对于MySQL最熟悉的区别于其他数据库工具的一个特性了。
mysql> select * from db_archivelog\G
******************* ...
- 2009-10-20 09:44
- 浏览 883
- 评论(0)
MySQL性能调优与架构设计
深入理解MySQL核心技术
深入浅出MySQL--数据库开发、优化与管理维护
163dba力作,我打算买一本;
高性能MySql(第2版)(英文影印版)
打算买一本[:)]
- 2009-10-20 08:40
- 浏览 1774
- 评论(0)
mysql查询重复字段
老蒋记事本
数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。
如果仅仅是查找数据库中name不重复的字段,很容易
SELECT min(`id`),`name`
FROM `table`
GROUP BY `name`;
但是这样并不能得到说有重复字段的id值。(只得到了最小的一个id值)
查询哪些字段是重复的也容易
SELECT `name`,count(`name`) as count
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
ORDER BY count DESC;
但 ...
- 2009-10-19 15:01
- 浏览 900
- 评论(0)
http://jnote.cn/blog/mysql/mysql-rand-efficiency.html
老蒋记事本
mysql使用rand随机查询记录效率测试
一直以为mysql随机查询几条数据,就用
SELECT * FROM `table` ORDER BY RAND() LIMIT 5
就可以了。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上
查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
You cannot use a column with RAND ...
- 2009-10-19 15:00
- 浏览 1263
- 评论(0)
关于MySQL表设计应该注意的问题(做了点修改)
关于设计表时应该注意的问题
如有错误欢迎大家指出。这段时间在家里,做了点修正。
1、慎重选择表名。
有两种选择:
按照多数开发语言的命名规则。比如(myCustomer)。
按照多数开源思想命名规则。比如(my_customer)。
按照咱们中国人的思想。比如(我的客户)。
第一种有个缺点,很容易忘掉大写的字母。
第二种则比较好,每个WORD间用下划线连接,避免遗忘。
第三种建议不要用,虽然很好记。不觉得解析这个表的时候还需要编码转化吗?我个人理解,大家可以补充。
2. 关于 ...
- 2009-10-19 11:52
- 浏览 949
- 评论(0)
也来谈一下随即查询数据的效率问题
看到这篇文章:
http://jnote.cn/blog/mysql/mysql-rand-efficiency.html
我做了些测试:
mysql> show create table song\G
*************************** 1. row ***************************
Table: song
Create Table: CREATE TABLE `song` (
`id` int(11) NOT NULL auto_increment COMMENT ...
- 2009-10-19 11:51
- 浏览 740
- 评论(0)
用mysqlslap对MySQL进行压力测试
http://blog.chinaunix.net/u/29134/showart_970894.html
MySQL5.1地的确提供了好多有力的工具来帮助我们DBA进行数据库管理。
现在看一下这个压力测试工具mysqlslap.
关于他的选项手册上以及--help介绍的很详细。
我解释一下一些常用的选项。
这里要注意的几个选项:
--concurrency代表并发数量,多个可以用逗号隔开,当然你也可以用自己的分隔符隔开,这个时候要用到--delimiter开关。
--engines代表要测试的引擎,可以有多个,用分隔符隔开。 ...
- 2009-10-19 11:48
- 浏览 1010
- 评论(0)
http://blog.chinaunix.net/u/29134/showart_1332349.html
MySQL分表优化试验
我们的项目中有好多不等于的情况。今天写这篇文章简单的分析一下怎么个优化法。
这里的分表逻辑是根据t_group表的user_name组的个数来分的。
因为这种情况单独user_name字段上的索引就属于烂索引。起不了啥名明显的效果。
1、试验PROCEDURE.
DELIMITER $$
DROP PROCEDURE `t_girl`.`sp_split_table`$$
CREATE PROCEDURE `t_girl`.`sp ...
- 2009-10-19 11:46
- 浏览 802
- 评论(0)
http://blog.chinaunix.net/u/29134/showart_1333566.html
【原创】关于MySQL分页的优化
关于分页的优化。
我们知道,在MySQL中分页很简单,直接LIMIT page_no,page_total 就可以了。
可是当记录数慢慢增大时,她就不那么好使了。
这里我们创建摘要表来记录页码和原表之间的关联。
下面为测试数据。
原表:
CREATE TABLE `t_group` (
`id` int(11) NOT NULL auto_increment,
`money` decimal(10,2) NOT ...
- 2009-10-19 11:40
- 浏览 763
- 评论(1)