mysql默认的存储引擎是什么?它们的区别有哪些?mysql中索引有哪些?
1、mysql默认引擎
mysql-5.1版本之前默认引擎是MyISAM,之后是innoDB
2、关系
MyISAM是非集聚引擎,支持全文索引;不支持事务;它是表级锁;会保存表的具体行数.
innoDB是集聚引擎,5.6以后才有全文索引;支持事务;它是行级锁;不会保存表的具体行数.
一般:不用事务的时候,count计算多的时候适合myisam引擎。对可靠性要求高就是用innodby引擎。
3、索引分类
1.普通索引index :加速查找
2.唯一索引
主键索引:primary key :加速查找+约束(不为空且唯一)
唯一索引:unique:加速查找+约束 (唯一)
3.联合索引
-primary key(id,name):联合主键索引
-unique(id,name):联合唯一索引
-index(id,name):联合普通索引
4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
5.空间索引spatial :了解就好,几乎不用
Mysql设置默认编码格式为UTF-8(修复MySQL中文乱码)
Linux下MySQL设置编码格式
前言
:MySQL是大家必备的数据库,但在服务器上有时新装的MySQL默认编码格式不正确,导致无法正常显示中文,因此需要重设默认编码
查看编码格式
- 连接进入MySQL后,执行:show variables like ‘%char%’;
- 查看自己的编码格式
- 通用模式为下图,如果你的配置和下图相同,那么请
检查你的表默认格式
添加配置文件
- MySQL的配置文件为:my.cnf
- 路径一般在:/etc/my.cnf
- 如果没看到可以执行指令搜索:find / -name my.cnf
- 备注:没该文件MySQL也能正常启动,my.cnf的作用在于提供配置参数,不存在则使用默认参数(所以会导致编码问题),不存在该文件的同学只要新建一个到**/etc**下即可
添加文件内容
- 如果已有my.cnf文件,则在原有文件内容下添加
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
- 没有的话新建后添加内容即可
重启MySQL
- 执行指令:service mysqld restart完成重启
- 成功后重新连接MySQL
- 执行**show variables like ‘%char%’;**再次查看格式
- 正常情况,这里就可以显示中文了
截图对比
修改前:
修改后:
其他
- 若数据库编码已经正确仍不能显示中文。执行show create table tableName;
- 执行**alter table tableName character set utf8;**来修改表编码
- 正常表编码: