存档

‘Mysql’ 分类的存档

Mysql正确的导出数据的方法

2011年5月23日 ken 2 条评论

之前折磨了很久,想在Mysql命令行下导出数据库,但就是每天提示不那个错误,后来才知道其实mysqldump不是mysql命令,因此不能在Mysql命令行下导出。

下面是错误的做法:

下面才是正确的做法:

即:mysql导出数据库命令只能在系统命令行下使用,而不能在mysql命令行下使用。

分类: Mysql 标签:

允许phpmyadmin空密码登录的配置方法

2011年5月17日 ken 1 条评论

在Mysql修改root密码的命令及方法一文中,我提到了使用phpmyadmin修改Mysql的root密码的方法,但是当你将phpmyadmin登录密码设置为空密码时,尽管你通过Mysql命令行方式可以以空密码进入Mysql,但是当你重新以空密码登录phpmyadmin时却无法登陆,这是因为默认phpmyadmin空密码登录是被禁止的,如果想要phpmyadmin空密码允许登录,就需要修改phpmyadmin相关配置。

在phpmyadmin3安装配置图解教程一文中,我介绍了phpmyadmin的安装与配置,至于修改phpmyadmin登录密码的界面,我在Mysql修改root密码的命令及方法中已告知,如果想要允许phpmyadmin以空密码方式登录,就要修改libraries/config.default.php配置文件(如果你是以根目录下config.inc.php配安装phpmyadmin的,请一并检查)。

默认phpmyadmin空密码登录是被禁止的,这一行为主要通过配置文件libraries/config.default.php中的两个全局变量控制,即 阅读全文…

分类: Mysql 标签: ,

经典分享MySQL的limit查询优化

2010年12月8日 ken 1 条评论

以下的文章主要是对MySQL limit查询优化的具体内容的介绍,我们大家都知道MySQL数据库的优化是相当重要的。其他最为常用也是最为需要优化的就是limit。MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。

同样是取10条数据

  1. select * from yanxue8_visit limit 10000,10
  2. select * from yanxue8_visit limit 0,10

就不是一个数量级别的。 阅读全文…

php随机函数rand()的用法

2010年11月10日 ken 没有评论

今天在写自己的php博客的时候,需要在首页随机显示几篇文章,想了下,思路就是在从Mysql数据库中取数据的时候可以用到一个随机函数rand(),这样就可以随机取出数据。用法如下:

$sql = select * from table order by rand()  limit  0,10;

可以看到,我这里没有用到where条件语句,是因为我的数据集是整个表中的数据,只是把所有的数据取出来是随机排序的,随机排序后再取limit所要显示的数据条数。

最具有代表性的8个开源产品

2010年8月28日 ken 2 条评论

   就开源本身而言,它就是个成功案例。它不仅受个人喜欢,而且众多知名企业也青睐于它。

   虽然开源计划和开源产品数不胜数,但哪一个才是最成功的呢?这里所说的“成功”的定义是:应用广泛+众所周知。而在众多成功的开源产品中,只有少数领头羊,而其他产品基本只能望其项背。

   Linux

   上榜理由:Linux + GNU = GNU/Linux 。从Linus Torvalds在1991年宣布他在Minix基础上创建一新OS内核到现在已经接近20年了。在这段时间内,大部分网络服务器都是Linux系统。

   BSD

   上榜理由:长久以来,FreeBSD, NetBSD和OpenBSD是服务器众操作系统之中广为人知的3个OS。上世纪90年代,三者均是脱胎于伯克利的Unix系统,故把三者组团上榜。另外,Apple的Mac OS脱胎于FreeBSD。
阅读全文…

Mysql语句优化方法和技巧

2010年7月31日 ken 6 条评论

1、使用索引来更快地遍历表。

  缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
  a.有大量重复值、且经常有范围查询( > ,< ,> =,< =)和orderby、group by发生的列,可考虑建立群集索引;
  b.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;
  c.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。

  2、在海量查询时尽量少用格式转换。

  3、ORDER BY和GROPU BY使用ORDER BY和GROUP BY短语,任何一种索引都有助于SELECT的性能提高。

  4、任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。

  5、IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复

值,可以考虑把子句拆开。拆开的子句中应该包含索引。

  6、只要能满足你的需求,应尽可能使用更小的数据类型:例如使用MEDIUMINT代替INT

  7、尽量把所有的列设置为NOT NULL,如果你要保存NULL,手动去设置它,而不是把它设为默认值。

  8、尽量少用VARCHAR、TEXT、BLOB类型

  9、如果你的数据只有你所知的少量的几个。最好使用ENUM类型

  10、正如graymice所讲的那样,建立索引。

分类: Mysql 标签: ,

Mysql乱码问题解决方法

2010年7月31日 ken 3 条评论

1 设置phpMyAdmin

Language:Chinese simplified (zh-utf-8)

MySQL 字符集:UTF-8 Unicode (utf8)

MySQL 连接校对:gbk_chinese_ci

2 创建数据库时

整理设置成 gbk_chinese_ci

3 用SQL建立表中

ENGINE=MyISAM DEFAULT CHARSET=gbk;
ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;

4 检查表结构中

varchar(100) 的整理属性为gbk_chinese_ci
其它类型的整理属性为空

5 代码中加上

$db->query(“SET CHARACTER SET GBK”);  Linux下需要,Windows下不需要
这个相当于Connection Character Sets and Collations

分类: Mysql 标签: ,

MySQL数据库之-更新语句使用技巧

2010年7月31日 ken 没有评论

  用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之 意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句。

  一、INSERT和REPLACE

  INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句

的语法类似。它们的主要区别是如何处理重复的数据。

  1. INSERT的一般用法

  MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中

,一次插入一条记录的INSERT语句只有一种形式。

  INSERT INTO tablename(列名…) VALUES(列值);

  而在MySQL中还有另外一种形式。

  INSERT INTO tablename SET column_name1 = value1,

column_name2 = value2,…;

  第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。如下面的语句向users表中插入了一条记录: 阅读全文…

分类: Mysql 标签: ,