mysql提升

修改数据库的字符集:
alter database drugstore default  character set utf8
修改表的字符集:
 ALTER TABLE product CONVERT TO CHARACTER SET utf8;

修改密码篇
 root用户给自己修改密码:
 (1)mysqladmin -u root -p password "新密码"; 回车后输入旧密码
 (2)登录数据库后执行SET PASSWORD=PASSWORD("新密码");
 (3)登录数据库后执行UPDATE mysql.user SET authentication_string=PASSWORD("新密码") WHERE User="root";
 root用户修改普通用户密码:
 (1)SET PASSWORD FOR 'username'@'hostname'=PASSWORD("新密码");
 (2)grant 权限类型 on database.table  to 'username'@'localhost' identified by 'password';
 root用户密码丢失:
 1、/etc/init.d/mysqld start --skip-grant-tables 启动mysql服务时跳过权限表
(或者在my.cnf中添加--skip-grant-tables)
 2.mysql -u root 不需要密码直接登录数据库
 3.通过update的方式改密码:
update mysql.user set authentication_string=password('root') where user='root' ;
修改表
1.修改表名:ALTER table 旧表名 RENAME 新表名;
2.修改表的数据类型:ALTER table 表名 modify 字段名 新的数据类型;
3.修改字段名:ALTER table 表名 CHANGE 旧字段名 新字段名 数据类型;
4.增加字段:ALTER table 表名 ADD 字段名 数据类型 【完整性约束条件】【FIRST | AFTER 字段名 】
5.删除字段:ALTER table 表名 DROP 字段名;
6.修改表的存储引擎:ALTER table 表名 ENGINE=存储引擎名; 
7.删除表的外键约束:ALTER table 表名 DROP FOREIGN KEY 外键别名;
8.删除表:DROP table 表名;

MySQL存储引擎中的MyISAM和InnoDB区别

InnerDB的特点:
1、支持事务处理、ACID事务特性
2、实现了SQL标准的四种隔离级别
3、支持行级锁和外键约束
4、可以利用事务日志进行数据恢复
5、不支持FullText类型的索引,没有保存数据库行数,计算count(*)需要全局扫描
6、支持自动增加列属性auto_increment
7、最后也是非常重要的一点:InnerDB是为了处理大量数据时的最大性能设计,其CPU效率可能是其他基于磁盘的关系型数据库所不能匹敌的。

MyISAM
1、做很多count计算的,(如果count计算后面有where还是会全表扫描)
2、插入和更新较少,查询比较频繁的

mysql备份表


4个事务隔离级别
未授权读取 
也称为读未提交(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。

授权读取 
也称为读提交(Read Committed):允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。 
可重复读取(Repeatable Read) 
禁止不可重复读取和脏读取,但是有时可能出现幻读数据。这可以通过“共享读锁”和“排他写锁”实现。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。 

序列化(Serializable) 
提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章