您的位置:首页 > 数据库 > MySQL

mysql 一些基础知识一

2016-09-06 00:00 399 查看
摘要: mysql

1、连接服务器:在命令提示符下
mysql -h localhost -uroot -p123456
登录服务器时顺便选择一个数据库
mysql db -h localhost -u root -p 123456
退出MYSQL命令: exit (回车)
2.修改密码:在命令提示符下
mysqladmin -h localhost -u root -p 123456 password 新密码
mysqladmin -uroot password yourpasswd 为root添加密码
set password for root@localhost=password('yourpasswd');//登陆后改密码
3.导出数据库:在命令提示符下
mysqldump -u root -p123456 wenzhang > 1.sql
mysqldump (-h localhost) -u root -p 123456 数据库名 表名> c:\2.sql
4.导出数据库,只带结构:在命令提示符下
mysqldump -h localhost -u root -p 123456 数据库名 -d>c:\2.sql
5.导入数据库:在命令提示符下
mysql -h localhost -u root -p 123456 数据库名< c:\2.sql
6.创建数据库DB
create database
7.查看数据库
show databases;
8.删除数据库
drop database 数据库名;
9.选用数据库
use 数据库名;
10.查看当前正在使用的数据库
select database();
11.查看当前的日期和时间
select now();
12.查看当前的用户
select user();
13.查看当前的版本
select version();
14.查看数据表
show tables;
查看创建表的代码
show create table 表名
15.查看表结构
describe 表名称 | desc 表名称;
SHOW FIELDS FROM
16.给表添加一列
alter table 表名 add 列名 属性;
17.修改表的字段类型
alter table 表名 modify 字段 新类型;
18.修改表的字段名称
alter table 表名 change 字段 新字段 类型;
19.删除字段
alter table 表名 drop 字段;
20.修改表名
alter table admin rename to admin1;
REPAIR TABLE 修复表
OPTIMIZE TABLE 优化表
SHOW KEYS FROM

21.新增用户

增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限
grant select,insert,update,delete on *.* to test2@localhost identified by \"abc\";

如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";

显示当前mysql版本和当前日期
select version(),current_date;

22 优化 explain

分析结果的含义:
  1)table:表名;
  2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
  3)possible_keys:查询可以利用的索引名;
  4)key:实际使用的索引;
  5)key_len:索引中被使用部分的长度(字节);
  6)ref:显示列名字或者"const"(不明白什么意思);
  7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;

23、使用optimize table
  对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;

24、使用not null和enum
  尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;
  如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

25、使用procedure analyse()
  可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:
  select * from students procedure analyse();
  select * from students procedure analyse(16,256);
  第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;

 26、使用查询缓存
  1)查询缓存的工作方式:
  第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。
  2)配置缓存参数:
  变量:query_cache _type,查询缓存的操作模式。有3中模式,0:不缓存;1:缓存查询,除非与 select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询; query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。

27、调整硬件
  1)在机器上装更多的内存;
  2)增加更快的硬盘以减少I/O等待时间;
  寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
  3)在不同的物理硬盘设备上重新分配磁盘活动;
  如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL