mysql

mysql索引的几点常见遵守事宜

星期二, 四月 6th, 2010 | Database | 没有评论

以前对索引不是很重视,直到处理大数据的时候才发现,只是优化程序不管数据库是极其不对的,有无索引性能差异不是程序控制可以想象的;
简要列出几个通用的创建索引的说明,下列来源于网络(值得注意的几点)

1,创建索引
对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加 索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下 降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。

2,复合索引
比如有一条语句是这样的:select * from users where area=’beijing’ and age=22;
如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效 率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀 特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。
› Continue reading

Tags: ,

mysql导入导出命令(未必用到的命令留念)

星期二, 四月 6th, 2010 | computer | 没有评论

mysql的使用原生的sql进行数据库管理,感觉总是有点怪怪的(phpMyAdmin等那么多免费好用的管理工具呢),不过多懂点命令也是很不错,记忆力有限放到此处以备以后用时翻阅吧;
还原一个数据库:mysql -h localhost -u root -p123456 www d:\www2010-04-06.sql

//以下是在程序中进行测试

//$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile”;
$command=”mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql”;
system($command);
echo “success”;

************************************************

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
› Continue reading

Tags: , , ,

Resin4.0安装小记

星期日, 十月 18th, 2009 | JAVA-and-J2EE, linux, php | 2 Comments

Resin出了4.0版本,一直喜欢尝试新东西的直接; 就下载安装了下,安装起来很简单,可以到Resin Download去下载,其实以前在windows中下载过,可惜执行的时候一闪而过,当时没有在意也没有去管他了,今天又在linux下去真正用下了;
1.tar zxvf resin-4.0.1.tar.gz
2.cd resin-4.0.1
3../configure
4.make & make install
5.修改resin.xml的用户组 www-user,给赋予webapps的对应的用户组权限
6../bin resin.sh start 不报错的就可以http://localhost:8080/看到页面了,记得防火墙的8080端口要打开哦

不过可惜的是4.0版本据说不稳定,有人发生宕机事件,还有就是有的在上面运行出错的问题;
再者看resin的主要意图是增加对php的支持,研习resin4.0版本的文档也不是很多
为了稳定还是延续使用ReResin Pro 3.1.9版本
最近会处理一些nginx+resin的处理,还有resin本身的集群功能;nginx+PHP(FastCGI)+mysql已经搭建完毕

Tags: , , , ,

db2, oracle和sqlserver,mysql取前几行的各自独自语法

星期六, 五月 16th, 2009 | Database, JAVA-and-J2EE | 2 Comments

常用的四种数据库的取前几行的sql语句如下: 以前比较不熟悉的是db2,现在天天用,也感觉不错了
db2:
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=10 或者 select * from tab fetch first 10 rows only oracle: select * from tab where rownum <=10 sqlserver: select top 10 * from tab mysql: select * from tab limit 10

Tags: , , , ,

Search

文章分类

Links

Meta