mysql 性能优化的几点建议
2016-05-23 10:46
381 查看
从sql语句考虑
1、对于查询的sql 语句 如 select .... 跟 insert into table_name select * from .... 还有 这种要尽可能的使用索引
除此之外, 等值条件 也尽可能的使用索引 如 a.studno=b.studno
2、使用explain 产看 select的执行计划
3、当数据只有一行时候 就使用 limit
4、条件字段 跟 连接字段 需要建立索引
从数据库跟表设计考虑
1、永远为每个表设置一个 ID 最好使用 int 并且是自动递增类型(auto_increment)
2、 属于某列重复率很高的 可以考虑使用枚举行 enum 如:性别,种族 create table table_name(sex enum("男","女","未知"));
3、 尽可能的使用 not null, null 在mysql 中也是占一个字节的
4、对于固定长度的列使用固定的长度 char 类型更好
除此之外, 如果没有事物的严格要求, 尽可能的使用MyISAM 引擎, 如果事物要严格 建议使用InnoDB引擎
如果要求性能,且能够保证数据库 不宕机, 那么可以考虑 memory 引擎
1、对于查询的sql 语句 如 select .... 跟 insert into table_name select * from .... 还有 这种要尽可能的使用索引
除此之外, 等值条件 也尽可能的使用索引 如 a.studno=b.studno
2、使用explain 产看 select的执行计划
3、当数据只有一行时候 就使用 limit
4、条件字段 跟 连接字段 需要建立索引
从数据库跟表设计考虑
1、永远为每个表设置一个 ID 最好使用 int 并且是自动递增类型(auto_increment)
2、 属于某列重复率很高的 可以考虑使用枚举行 enum 如:性别,种族 create table table_name(sex enum("男","女","未知"));
3、 尽可能的使用 not null, null 在mysql 中也是占一个字节的
4、对于固定长度的列使用固定的长度 char 类型更好
除此之外, 如果没有事物的严格要求, 尽可能的使用MyISAM 引擎, 如果事物要严格 建议使用InnoDB引擎
如果要求性能,且能够保证数据库 不宕机, 那么可以考虑 memory 引擎
相关文章推荐
- 重写代码生成器支持模板(多层架构,MVC),多语言c#,java;支持mysql和sqlserver,动态编译
- 看mysql的like是否使用索引
- mysql更新大字段
- MYSQL中存储过程的创建,调用及语法
- mysql存储过程详解
- mysql 之as 与 like创建表之差异
- Spark RDD写入RMDB(Mysql)方法二
- MySQL运行状态show status详解
- 实时刷新缓存-处理mysql主从延迟的一些设计方案
- SQLSERVER 中实现类似Mysql的 INSERT ON DUPLICATE KEY UPDATE
- mysql数据类型
- mysql根据一个字段查询重复数据
- mysql编码字符相关
- mysql 双机热备
- MySQL 数据类型
- MySQL数据库MyISAM和InnoDB存储引擎
- 【转】MySQL数据库MyISAM和InnoDB存储引擎的比较
- [置顶] 深入理解Mysql——锁、事务与并发控制
- 关于MySQL的使用记录
- MySql安装启动两种方法教程详解