MySQL修改表结构及SQL性能优化

原创 2016年05月31日 12:34:08
修改表结构:

1、添加字段

alter table tablename add email varchar(30) not null;

alter table tablename add id int unsigned not null auto_increment primary key;

2、修改字段

alter table tablename modify colname varchar(10);//修改字段数据类型

alter table tablename change colname newcolname varchar(20);//修改字段名

3、删除字段

alter table tablename drop  colname;


创建用户:

创建decorate用户对decorate库有操作权限 密码123456

grant select,insert,update,delete on decorate.* to decorate@"%" identified by "123456"

性能优化:

1.尽可能的将字段设置为NOT NULL。
2.有些字段使用ENUM而不是VARCHAR,比如“性别”,“国家”,“民族”,“状态”或“部门”。
3.永远为每张表设置一个ID,每张表都设置一个ID做为其主键,而且最好的是一个INT型的(推荐使用UNSIGNED),并设置上自动增加的AUTO_INCREMENT标志。
4.避免select * 这种方式,改用用字段名。
5.避免在WHERE子句中使用in,not in,or 或者having,使用 exist 和not exist代替 in和not in。
6.避免大规模排序,ORDER BY、GROUP BY、HAVING子句。
7.检查索引,为WHERE、JOIN中用到的字段加上索引,为搜索字段建索引。
不要在建立索引的字段上进行下列操作:

避免对索引字段进行计算操作

避免在索引字段上使用not,<>,!=

避免在索引列上使用IS NULL和IS NOT NULL

避免在索引列上出现数据类型转换

避免在索引字段上使用函数

避免建立索引的列中使用空值。

8.避免在JOIN、WHERE子句中使用计算。
9.避免在查询中使用%模糊匹配。
10. 当只要一行数据时使用LIMIT1,可以增加性能,这样数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。
如:

"SELECT name,pass FROM user WHERE name = 'test'"   改为  "SELECT name,pass FROM user WHERE name = 'test' LIMIT 1"。

版权声明:互相学习,相互促进。。。

MySQL数据库表结构设计优化技巧总结

很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设...

Explain详述(Sql查询优化器) -Mysql深化学习-持续更新

MySql 深化学习 1 explain用法 explain可以帮助我们分析select语句,找出select语句的瓶颈,从而可以针对性地去做优化,让MySQL查询优化器更好地工作。 MySQL查询优...

mysql千万级大数据SQL查询优化

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎...

mysql数据库性能优化(包括SQL,表结构,索引,缓存)

优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考...

mysql数据库性能优化(包括SQL,表结构,索引,缓存)

优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考...

SQL性能优化中的底层概念,时间复杂度,算法和数据结构,数据库组成,查询优化和表关联原理.

原文地址: http://blog.jobbole.com/100349/ 一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大...

mysql建表、索引以及SQL性能优化

1 前言 参考了部分网上资料整理而成。 2 设计部分 2.1 设计表注意事项 2.1.1 定义字段类型 尽可能精确地定义字段类型,包括类型和长度:如不要以字符类型声明纯数字字段,业务上t...
  • bladedk
  • bladedk
  • 2014年11月11日 15:37
  • 335

MySql性能调优(四)快速修改表结构

1.     修改varchar类型 为了满足需求,现要将varchar(6)改成varchar(8).这时更好的方法不是使用altertable modify,而是采用如下的步骤: A.创建一张临...

MySQL 数据库性能优化之表结构

接着上一篇 MySQL 数据库性能优化之缓存参数优化 ,这是 MySQL数据库性能优化专题 系列的第二篇文章:MySQL 数据库性能优化之表结构 很多人都将 数据库设计范式 作为数据库表...

MySQL5.7性能优化系列(二)——SQL语句优化(2)——使用 Semi-Join半连接变换优化子查询,派生表和视图

优化器使用半连接策略来改进子查询执行,如本节所述。对于两个表之间的内部连接,连接从一个表返回一行多于另一个表中的匹配项。但是对于一些问题,唯一重要的信息是是否有匹配,而不是匹配的数量假设有一个名为cl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL修改表结构及SQL性能优化
举报原因:
原因补充:

(最多只允许输入30个字)