mysql存储引擎概述
存储引擎(MyISAM,InnoDB),表类型,是表级别的概念,不是数据库级别的概念。
MyISAM:无事务,表锁
.frm:表结构定义文件
.MYD:表数据
.MYI:索引
InnoDB:事务,行锁
.frm:表结构定义文件
.ibd:表空间(数据和索引)
1 查看存储引擎
1.1 查看表默认存储引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+----------
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+-----------
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+---------
1.2 查看某表的存储引擎
mysql>SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
mysql> show table status from mysql like 'user'\G
二程序语言连接数据库的方式
动态SQL:通过函数或方法与数据库服务器建立连接,将查询语句发送至服务器端
嵌入式SQL:编译后
JDBC,ODBC
三 服务器端程序
mysqld,mysqld_safe,mysqld_multi,mysqlbinlog
四 加载my.cnf的顺序
/etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> --default-extra-file=/path/to/mysql_config_file --> ~/.my.cnf
[mysql],只对当前客户端生效
[client],对对所有客户端生效
[mysqld],[mysql_safe],对服务器端生效
# mysqladmin variables
# mysqld --verbose --help
To see what values a running MySQL server is using, type 'mysqladmin variables' instead of 'mysqld --verbose --help'.
五 可能遇到的问题
1、无法启动-->端口被占用-->之前版本的mysql占用,但已经卸载,无法stop,只能killall mysqld
2、在数据目录下,有hostname.err错误日志文件,一般的错误可以根据此错误日志来排除;若无错误日志,多数情况下时数据文件datadir=/path/to/mysql_data_dir,路径错误,在配置文件my.cnf中重新指定路径即可。
3、数据目录的权限问题
六 数据类型
1 数值型
精确数值:int,decimal
近似数值:float,double,real
2 字符型,需要指定长度
定长:char(n),binary(n)
变长:varchar(n),varbianry(n)
大字符:text,blob
ENUM,SET
3 日期时间型
date,time,datetime,timestamp
域属性:修饰符,定义域限制
4 定义数据类型的意义
1、存入的值类型;
2、占据的存储空间;
3、定长还变长;
4、如何比较及排序;
5、是否能够索引;
5 显示mysql所有支持的字符集,不指定则从上一级别继承
mysql> show character set;
6 查看mysql所有支持的排序规则,不指定则从上一级别继承
mysql> show collation;
域属性修饰符
NULL,NOT NULL,DEFAULT,SINGED,UNSIGNED,PRIMARY KEY
AUTO_INCREMENT(LAST_INSERT_ID存储函数)
例子:
CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))
查询上次的AUTO_INCREMENT结果
mysql> SELECT LAST_INSERT_ID();
TINYINT(n),表示显示n位
enumerate:列举
RRtype CHAR(5)
A, PTR, CNAME, AAAA, MX, NS, SOA, SRV
RRtype ENUM('A','PTR')
七 SQL模型
ANSI QUOTES A double quote (") is now treated as an identifier quote (`). Strings can only be quoted with a single quote (’)
反引号、双引号用来引用表名,字段名称,单引号用来引用字符串。
IGNORE_SPACEThis sql_mode allows a space between a built-in function and the open parenthesis
在内建函数中忽略多余的空白
STRICT_ALL_TABLESWhen this sql_mode
©著作权归作者所有:来自51CTO博客作者不远晴空的原创作品,如需转载,请注明出处,否则将追究法律责任