1.指令
show databases; 查看数据库
use student; 使用数据库
show tables; 查看所有表
select * from subject; 查看指定表中内容
explain select * from subject; 分析表
show status like 'subject'; 查看表的索引
analyze table student; 分析 储存表的关键字
check table student; 检查错误
optimize table studnet; 优化数据库
2.优化SQL语句
1.选取最合适的字段属性
MySQL支持了大量数据的存取,一般来说,表越小,查询速度越快,因此我们想要使数据库的性能更加良好,我们要将字段的数据类型宽度设置的要 尽量小,合适即可。
2.使用连接(inner join)来代替子查询
使用子查询可以一次性完成很多逻辑上需要很多步骤的SQL操作,在某些情况下我们可以使用(inner join)来代替子查询,使用inner join速度将会提高很 多。
3.对查询进行优化,首先考虑在where和order by涉及的列上面建立索引
4.in和not in要慎重应用,否则会导致全表搜索
5.避免在where中进行对字段的表达式操作,这将导致数据库放弃使用索引而进行全表扫描
6.不要在where中'='左边进行函数,算数运算或其他表达式运算,否则导致系统无法正确使用索引
7.索引并不是越多越好,索引虽然可以提高 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以 怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。
3.优化数据库
1.创建索引
对于查询占主要的应用来说,索引尤为重要,有时候不加索引会导致致命的性能下降,如果建立索引没有任何优势则会影响更新速度,这被称为过 度索引
2.索引不会包含有null值的列
只要列中包含有NULL值都没有被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库 设计时不要让字段的默认值为NULL。
3.使用短索引
串列进行索引,如果可能应该指定一个前缀长度。
4.排序的索引问题
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要 求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
5.like语句操作
一般情况下不建议使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。
6.不使用not in和<>操作
NOT IN和<>操作都不会使用索引将进行全表扫描。