MySQL查询优化 索引
MySQL索引
MySQL查询优化最重要的当属建立正确的索引,没有索引,面对海量数据,一切的优化纯属空话。什么是索引?索引为什么那么重要呢?这些问题这里就不谈了,还是先写下我首次优化MySQL查询海量数据的心得吧,数据库表类型是MyISAM。
如果简单的一个查询语句,MySQL查询速度还是比较客观的,例如select col_name from table [where conditions]即使数据量再大,也是非常之快。但是我们平时具体使用往往需要几张表的连接才能得到数据,甚至是进行order by、group by,这个时候如果没有索引,就显得异常的慢。表的连接、order by、group by往往还要加上条件,因此创建复合索引的情况比较多见。
复合索引有一个重要的原则是匹配最左前缀,一般如果匹配了最左前缀,就不需要再单独建立一个单一索引了,索引过多只会减慢查询速度。例如建立了create index ComplexIndex on table(Owner,Type,Permission)就相当于包含了(Owner,Type)和(Owner)这两个索引。先写这些吧,待续。
相关文档:
由于能直接在MYSQL数据库里添加中文数据,并且能正常显示,说明我的表都使用了正确的字符编码,经过查看后,确认了,我全部的表以及字段都使用了UTF-8的编码,但是为什么程序添加的中文数据就不行呢?
其实,原因在于MYSQL服务器使用的默认编码,以及数据库的默认编码,很多人已经很小心的在建立表时关注表的字符编码,却忽略了数据库 ......
以下内容在ubuntu 9.04 server系统上测试通过
用apt-get install vsftp安装的时候相关的文件位置:
主配置文件:/etc/vsftpd.conf
验证配置文件/etc/pam.d/vsftpd
重启:/etc/init.d/vsftpd restart
vsftp Mysql验证方式:
MYSQL已经安装在/usr/local/mysql
直接安装vsftp
sudo apt-get install vsftp
安装pam_mys ......
需注意以下三点:
1、创建数据库的时候:CREATE DATABASE `database`
CHARACTER SET 'utf8'
  ......
在linux下面安装mysql,首相要根据操作系统的版本,选择对应的mysql的版本,官方网站上有非常明确的分类
http://dev.mysql.com/downloads/
在这里我实验的操作系统是redhat linux
mysql 用了两个安装包,一个是server端,一个是client,我用的是rpm包,安装的指令比较简单。
MySQL-server-community-5.1.42-0.rhel4.i38 ......