MySQL就这么简单第二部分

1.对MySQL客户端工具的使用总结

  • 关于执行SQL脚本

在MYSQL客户端中,可以source /xxx/yyy/zzz.sql

如果在SHELL命令行,可以mysql -uxxx -pyyy -hzzz < /.../.../test.sql进行执行

  • 注意服务器端命令以;结束,客户端命令可以不用

我们可以利用delimiter进行定义

在定义存储过程中需要使用delimiter

  • \g  \G

\g表示将\g之前的命令强制直接发送到SERVER端执行,相当于默认情况下的;

\G表示\g并且以特定格式显示结果集,在实际开发中,当表的字段特别多的时候,这个机制很有用

mysql> select * from users\G
*************************** 1. row ***************************
      id: 001
    name: zhangsan
     Sex: 
birthday: NULL
*************************** 2. row ***************************
      id: 002
    name: lisi
     Sex: 
birthday: NULL
2 rows in set (0.00 sec)
  • system 在MYSQL客户端中执行SHELL命令
mysql> system ls -ld /var/lib/mysql
drwxr-xr-x 7 mysql mysql 4096 Sep 12 20:34 /var/lib/mysql
  • quit退出客户端

2.注意使用help COMMAND

mysql> help create index
Name: ‘CREATE INDEX‘
Description:
Syntax:
CREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (index_col_name,...)
    [index_option] ...
index_col_name:
    col_name [(length)] [ASC | DESC]
index_type:
    USING {BTREE | HASH}
index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
CREATE INDEX is mapped to an ALTER TABLE statement to create indexes.
See [HELP ALTER TABLE]. CREATE INDEX cannot be used to create a PRIMARY
KEY; use ALTER TABLE instead. For more information about indexes, see
http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html.
URL: http://dev.mysql.com/doc/refman/5.1/en/create-index.html

3.mysqladmin


mysqladmin是直接在SHELL命令行中来操作MYSQL数据库的一种方式。

mysqladmin -uxxx -pyyy -hzzz

当然,如果我们在my.cnf中已经定义好了客户端连接的user,host,password,那么我们可以

直接使用mysqladmin COMMAND

常用如下:

创建,删除数据库  

mysqladmin create db_name

mysqladmin drop db_name

查看服务器状态变量

mysqladmin extended-status

重读授权表

mysqladmin flush-privileges

和主从复制相关的命令

mysqladmin start-slave

mysqladmin stop-slave

查看简短的服务器信息

[[email protected] ~]# mysqladmin statusUptime: 875  Threads: 1  Questions: 4  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 6  Queries per second avg: 0.005

关闭服务器

mysqladmin shutdown

4.MySQL体系

  • 当用户发起请求到达MYSQL的连接管理器后,MYSQL会根据用户权限管理模块判断用户是否具有连接MYSQL的权限
  • 如果用户具有连接MYSQL的权限,那么MYSQL的线程管理器会启动一个线程用于处理用户的请求

需要注意的是,MYSQL是单进程多线程的结构,每一个用户请求都会创建线程来响应。

  • 接下来处理用户请求的线程会将COMMAND交由命令管理模块进行处理,命令管理模块会对命令进行词法、语法分析,如果COMMAND没有语法错误,那么命令管理模块会将分析后的COMMAND交给缓存模块进行缓存起来以供下次使用。同时,会有日志模块进行日志记录。
  • 命令管理器处理后,会将COMMAND发往命令解析器,比如SELECT语句,在MYSQL内部会进行优化处理;比如查询表,那么会有表定义模块来判断表,字段信息。
  • 访问控制模块会进一步检查,用户是否具有操作数据库某个对象的权限,如果有则发往表管理器,表管理器通知存储引擎,来完成物理上的操作。

实际上,关系型数据库有如下三个层次:

表示层(关系)--》逻辑层(存储引擎)--》物理层(文件)

我们在数据库中看到各种数据库对象,如表,视图等,最终还是要反映到文件上。而完成这一个过程的就是存储引擎。对于MYSQL,它是支持插件式的存储引擎的,比较常用的有两个,一个是MYISAM,一个是InnoDB。简单来说,MYISAM性能较好,但是不支持事务,对于查询较多的系统非常适合,比如数据仓库。而InnoDB是支持事务的,是一款工作非常类似于ORACLE的,比较适合在线事务系统。

时间: 2024-08-19 13:36:19

MySQL就这么简单第二部分的相关文章

mysql语句基本简单查询

mysql语句基本简单查询 第一节 -- or # 单行注释/***多行注释*/ -- c创建数据库examCREATE DATABASE exam; USE exam; /*创建部门表*/CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(50), loc VARCHAR(50)); /*创建雇员表*/CREATE TABLE emp( empno INT PRIMARY KEY, ename VARCHAR(50), job VA

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

最近看老罗视频,做了一个简单的用户注册系统.用户通过网页(JSP)输入用户名.真名和密码,Servlet接收后通过JDBC将信息保存到MySQL中.虽然是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.下面先上源码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path =

mysql数据库很简单操作

进入linux系统 root   >/usr/bin/mysql -u root mysql>show databases;                    #查看数据库 mysql>use  testtable;                        #testtable 为所要查看的库,应用数据库 mysql>show tables;                          #查看所有表 mysql>desc abc_table          

&lt;MySQL管理之道第二版元旦截稿

<MySQL管理之道第二版>元旦截稿,这周即可送往机械工业出版社排版订正,在这里感谢沃趣科技公司高级DBA邱文辉提供"MariaDB 10 Hash Join索引优化"一文.

Mysql Cookbook学习笔记第二章

1,使用python链接mysql + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # -*- coding: utf-8 -*- # connect.py --连接到MySQL服务器 import sys import MySQLdb try:     conn = MySQLdb.connect(db = "cookbook",                            host = "localhost"

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来

MySQL purge log简单吗

MySQL purge log简单吗? 简单: purge log的功能很简单,purge master logs to 指定一个binlog,然后删除之前的文件系统上的binlog文件,并更新binlog.index文件. 复杂: 需要保证purge的原子操作吗, 怎么保证, 有崩溃恢复吗? 之前没有读过代码,想到代码实现上会遇到的问题: 问题1: 如果删除文件比较多,怎么平衡加锁的时间? 问题2: 怎么保证os文件删除和index文件的同步? 问题3: 怎么保证index文件写入是完整的?

python基于mysql实现的简单队列以及跨进程锁

在我们做多进程应用开发的过程中,难免会遇到多个进程访问同一个资源(临界资源)的状况,必须通过加一个全局性的锁,来实现资源的同步访问(同一时间只能有一个进程访问资源). 举个例子: 假设我们用mysql来实现一个任务队列,实现的过程如下: 1. 在Mysql中创建Job表,用于储存队列任务,如下: create table jobs( id auto_increment not null primary key, message text not null, job_status not null

Java连接MySQL数据库及简单操作代码

1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: "我的电脑"-> "属性" -> "高级" -> "环境变量",在系统变量那里编辑clas