建表时候数据库引擎的选择也可以达到优化的效果
InnoDB:
基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
MyISAM:在磁盘上存储为三个文件
.frm文件存储表定义。
数据文件的扩展名为.MYD (MYData)。
索引文件的扩展名是.MYI (MYIndex)。
InnoDB提供事务支持事务,外部键等高级数据库功能
MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持
对于MyISAM数据库,需要定时清理
optimize table 表名
数据库参数配置:
最重要的参数就是内存,主要用到的innodb引擎,调大下面的两个参数:
innodb_additional_men_pool_size=64M
innodb_buffer_pool_size = 1G
对于MyISAM,需要调整key_buffer_size,当然调整参数还是要看状态,用show_status语句查看当前状态,
以决定调整哪些参数
优化group by语句
group by的时候默认会对数据进行排序,这时候可以采用order by null可以禁止排序
某些情况下,可以使用连接来代替子查询。因为在mysql中join方式不需要在内存中创建临时表,效率较高
在精度要求高的应用中,建议使用定点数(decimal)来存储数值,以保证结果的准确性。
create table sal(t1 float(10,2));
create table sal2(t2 decimal(10,2));
表的水平划分
以一个标准去划分表
表的垂直划分
数据库存储图片路径,图片放置在另外的服务器上(图床)
读写分离:
http://blog.csdn.net/cutesource/article/details/5710645
对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。
这句话阐述了优点和缺点及何时使用。
5.5版本的mysql数据存储的位置--》 C:ProgramDataMySQLMySQL Server 5.5data est
可以参见my.ini中的配置