二
10
2010
mysql YUM 安装路径rpm -ql mysql (usr/bin)
方法:
# /etc/init.d/mysqld stop
# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysqld restart
# mysql -uroot -p
二
08
2010
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:
使用整数数据的精确数字数据类型。
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
int
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
smallint
从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。
阅读全文——共609字
十二
28
2009
最近论坛的数据超过了1600万了,时不时的出现访问速度超慢的情况,虽然不是出现频率很多,但也很影响论坛的正常运行。今天终于抽出一些时间来优化一下,经过分析,发现主要是在一个更新主贴回帖数的语句上出现了问题,因为我们的论坛是从dvbbs转过来的,所以当时这个语句做过调整,原来的语句是
SELECT count(*) FROM cdb_posts AS p LEFT JOIN cdb_members AS m ON p.authorid = m.uid WHERE p.tid = ’1213675′ AND p.invisible = ’0′ AND p.fid NOT IN (444,92) AND m.uid IS NOT NULL
发现效率真的很差,经常要执行10秒左右,于是现学现卖,抓紧学知识,首先是加索引,效果不错问题解决了。但是我还是想优化一下这个语句。因为这里面的left join一直以来概念模糊,只知道人家用我也用。今天到网上仔细找了找资料学习了一番,把这个语句改成了
阅读全文——共1414字
四
13
2009
配置详解:
mysqld程序–目录和文件
basedir = path 使用给定目录作为根目录(安装目录)。
character-sets-dir = path 给出存放着字符集的目录。
datadir = path 从给定目录读取数据库文件。
pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。
socket = filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)。
在Windows环境下,如果MySQL客户与服务器是通过命名管道进行通信的,–sock选项给出的将是该命名管道的名字(默认设置是MySQL)。
阅读全文——共17353字
三
05
2009
索的存储:
他们的存储方式和数据的检索方式都不一样。
数据的检索效率是:char>varchar>text
空间占用方面,要具体情况具体分析了。
CHAR(M)
阅读全文——共848字
七
23
2008
好多年没写程序了,现在对于php+mysql数据库编程都已经生疏了,最近又重新拾了起来,当然一开始就出现遇见了这样那样的问题.
1.乱码问题
按照以前的习惯写了代码如下;
$link = mysql_connect(‘localhost’,’hgqy’,’hgqy’); //连接数据服务器
mysql_select_db(‘hgqy’ , $link); //选择数据库
$sql = “select * from `plug_qiye` where cpname = ‘济南’”;
$query = mysql_query($sql) or die(“查询失败” . mysql_error()); //执行数据查询语句
$row = mysql_fetch_array($query);
阅读全文——共522字
七
22
2008
MySQL常用操作基本操作,以下都是MySQL5.0下测试通过首先说明下,记住在每个命令结束时加上;(分号)
1.导出整个数据库
mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
阅读全文——共2455字
七
22
2008
在程序设计中同样存在一个“二八原则”,即20%的代码用去了80%的时间。数据库应用程序的开发亦然。数据库应用程序的优化,重点在于SQL的执行效率。而数据查询优化的重点,则是使得数据库服务器少从磁盘中读数据以及顺序读页而不是非顺序读页。
查询是数据库技术中最常用的操作。查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后,执行这条SQL语句,然后将查询到的结果返回给客户端。虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响。因此,本文就在 MySQL中常用的查询优化技术进行讨论。讨论的内容如:
1 通过查询缓冲提高查询速度
2 MySQL对查询的自动优化
3 基于索引的排序
4 不可达查询的检测
5 使用各种查询选择来提高性能
一、 通过查询缓冲提高查询速度
一般我们使用SQL语句进行查询时,数据库服务器每次在收到客户端发来SQL后,都会执行这条SQL语句。但当在一定间隔内(如1分钟内),接到完全一样的 SQL语句,也同样执行它。虽然这样可以保证数据的实时性,但在大多数时候,数据并不要求完全的实时,也就是说可以有一定的延时。如果是这样的话,在短时间内执行完全一样的SQL就有些得不偿失。
阅读全文——共4733字