文章分类

标签: mysql

mysql中OPTIMIZE TABLE的作用

2010年01月14号
5条评论 284次浏览

1、先来看看多次删除插入操作后的表索引情况

mysql> SHOW INDEX FROM `tbl_name`;
+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tbl_name | 0 | PRIMARY | 1 | StepID | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | FlowID | 1 | FlowID | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerCount | 1 | WagerCount | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerID_3 | 1 | WagerID | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerID_3 | 2 | StepType | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerID_3 | 3 | ParamResult | A | 1 | 255 | NULL | | BTREE | |
| tbl_name | 1 | StepType_2 | 1 | StepType | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | StepType_2 | 2 | ParamResult | A | 1 | 255 | NULL | | BTREE | |
| tbl_name | 1 | WagerID_2 | 1 | WagerID | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerID_2 | 2 | StepType | A | 1 | NULL | NULL | | BTREE | |
| tbl_name | 1 | WagerID_2 | 3 | ParamResult | A | 1 | 255 | NULL | | BTREE | |
+----------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
11 rows in set (0.01 sec) 阅读全文

类别数据库 标签

从MySQL表中随机读取数据

2010年01月13号
14条评论 301次浏览

如果用PHP的实现随机,但取出多条好像要进行两次以上查询.

翻了手册,找到了下面这个语句,可以完成任务了

SELECT * FROM table_name ORDER BY rand() LIMIT 5; 阅读全文

类别数据库 标签

使用MySQL触发器自动更新memcache

2010年01月05号
8条评论 277次浏览

mysql 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤。

阅读全文

类别数据库 标签,

phpmyadmin 导入大数据的方法

2009年09月07号
116条评论 1,159次浏览

phpMyAdmin目录下新建一个目录,如:importsqlfile,再编辑phpMyAdmin目录下libraries\config.default.php文件,

查找$cfg['UploadDir'],将其值写为新建目录的名称,如下所示:

阅读全文

类别数据库 标签

php导入SQL文件

2009年09月07号
没有评论 314次浏览

<?php
$host = “localhost”;
$user = “root”;
$pwd = “”;
$file_dir = dirname(__FILE__);
$file_name = “del.sql”;
$data_base = “test”; 阅读全文

类别数据库 标签

数据库查询优化

2009年07月01号
没有评论 253次浏览

数据内容表:

CREATE TABLE `story` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`type` tinyint(3) unsigned NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`data` varbinary(8192) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `i_ut` (`uid`,`type`,`time`)
) ENGINE=InnoDB; 阅读全文

类别数据库 标签

GROUP BY和HAVING语句应用实例

2009年05月27号
11条评论 424次浏览

SELECT    * FROM    result   
   WHERE    sid    IN     
   (SELECT    sid    FROM    result   where c_sclassid=4    GROUP    BY   sid    HAVING    COUNT(*)    >1)
order    by    sid    desc

阅读全文

类别数据库 标签

mysql中char和varchar的区别

2009年05月25号
4条评论 291次浏览

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

在MySQL中用来判断是否需要进行对据列类型转换的规则

1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.
例外:长度小于4个字符的char数据列不会被转换为varchar类型

类别数据库 标签