mysql update语句

MyISAM与InnoDB两者之间怎么选择

痴心易碎 提交于 2020-04-06 09:21:47
1、MyISAM不支持事务,InnoDB是事务类型的存储引擎 当我们的表需要用到事务支持的时候,那肯定是不能选择MyISAM了。 2、MyISAM只支持表级锁,BDB支持页级锁和表级锁默认为页级锁,而InnoDB支持行级锁和表级锁默认为行级锁 表级锁:直接锁定整张表,在锁定期间,其他进程无法对该表进行写操作,如果设置的是写锁,那么其他进程读也不允许 MyISAM是表级锁定的存储引擎,它不会出现死锁问题 对于write,表锁定原理如下: 如果表上没有锁,在其上面放置一个写锁,否则,把锁定请求放在写锁队列中。 对于read,表锁定原理如下 : 如果表上没有写锁定,那么把一个读锁放在其上面,否则把锁请求放在读锁定队列中 当一个锁定被释放时,表可被写锁定队列中的线程得到,然后才是读锁定队列中的线程。这意味着,如果你在一个表上有许多更新,那么你的SELECT语句将等到所有的写锁定线程执行完。 行级锁:只对指定的行进行锁定,其他进程还是可以对表中的其他行进行操作的。 行级锁是Mysql粒度最小的一种锁,它能大大的减少数据库操作的冲突,但是粒度越小实现成本也越大。 行 级锁可能会导致“死锁”,那到底是怎么导致的呢,分析原因:Mysql行级锁并不是直接锁记录,而是锁索引。索引分为主键索引和非主键索引两种,如果一条 sql语句操作了主键索引,那么Mysql就会锁定这个主键索引

MyISAM与InnoDB两者之间怎么选择

六月ゝ 毕业季﹏ 提交于 2020-04-06 09:21:30
MyISAM与InnoDB两者之间怎么选择 1、MyISAM不支持事务,InnoDB是事务类型的存储引擎 当我们的表需要用到事务支持的时候,那肯定是不能选择MyISAM了。 2、MyISAM只支持表级锁,BDB支持页级锁和表级锁默认为页级锁,而InnoDB支持行级锁和表级锁默认为行级锁 表级锁:直接锁定整张表,在锁定期间,其他进程无法对该表进行写操作,如果设置的是写锁,那么其他进程读也不允许 MyISAM是表级锁定的存储引擎,它不会出现死锁问题 对于write,表锁定原理如下: 如果表上没有锁,在其上面放置一个写锁,否则,把锁定请求放在写锁队列中。 对于read,表锁定原理如下 : 如果表上没有写锁定,那么把一个读锁放在其上面,否则把锁请求放在读锁定队列中 当一个锁定被释放时,表可被写锁定队列中的线程得到,然后才是读锁定队列中的线程。这意味着,如果你在一个表上有许多更新,那么你的SELECT语句将等到所有的写锁定 线程执行完。 行级锁:只对指定的行进行锁定,其他进程还是可以对表中的其他行进行操作的。 行级锁是Mysql粒度最小的一种锁,它能大大的减少数据库操作的冲突,但是粒度越小实现成本也越大。 行级锁可能会导致“死锁”,那到底是怎么导致的呢,分析原因:Mysql行级锁并不是直接锁记录,而是锁索引。索引分为主键索引和非主键索引两种,如果一条sql语句操作了主 键索引

MYSQL杂记

最后都变了- 提交于 2020-04-06 08:28:07
数据库范式:1234 表中不能有重复字段,且字段不能拆分 DDL数据定义语言 DML DCL INNODB,mysam:mysql常用的表类型 mysql默认端口3306 mysql分为客户端和服务器,只有服务器端开启以后,客户端才可以使用服务。安装时选择自动启动服务时,每次开机都会自动启用mysql服务。手动启动方式:控制面板--性能与维护--管理工具--服务--MySQL--启动(或右击设置) 服务启动后可以通过客户端登陆。 (1)DOS界面客户端登陆 mysql -h localhost -u root -p ;或\g来结束命令 exit退出 (2)运行中直接输入mysql -h localhost -u root -p或者mysql -h 127.0.0.1 -u root -p (3)开始菜单中找到mysql command line client mysql需要配置path变量(bin文件夹的路径) mysql配置:(1)开始菜单中MYSQL选项中有配置选项,选重新配置 (2)修改配置文件:安装目录下 bin文件下为常用命令可执行文件;lib为库文件;share为字符集信息;my.ini为配置文件;其他.ini为配置文件模板。datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL

mysql 杂记(一)

梦想与她 提交于 2020-04-06 07:54:37
1. mysql数据库基本操作 启动停止mysql服务器:net start\stop mysql 连接mysql数据库:mysql -u root -h localhost -p password 2. mysql 存储引擎 查询mysql支持的存储引擎:show engines; innoDB存储引擎:倾向于事务处理的应用程序,频繁的更新、删除操作 MyISAM存储引擎:查询速度快,空间和内存使用效率低 MEMORY存储引擎:“内存”,存储速度快但安全性不高 3. mysql 基本操作 创建数据库:create database db_admin; 显示所有的数据库:show databases; 显示数据库中所有的表:show tables; 选择数据库:use db_admin; 删除数据库:drop database db_admin; 创建数据表:create table tb_new(id int primary key, name varchar(20)); 查询表结构:show columns from tb_new; / describe tb_new; 修改表结构:alter table tb_new add email varchar(30), add adress varchar(50); // 可以是modify\drop\change 重命名表

MySQL -- 基础操作

ε祈祈猫儿з 提交于 2020-04-06 06:06:22
数据库操作: 创建数据库: CREATE DATABASE 数据库名称; 查看数据库: # 查看所有数据库 SHOW DATABASES; 创建数据库: # 选择一个数据库/切换至xxx数据库 USE 数据库名称; 创建数据库: # 删除数据库 DROP DATABASE 数据库名称; 表操作: 创建表: # 多个参数使用逗号隔开 CREATE TABLE 表名( 参数名 参数类型 ...); # 其他常见操作 PRIMARY KEY #主键约束,可以简单理解为包含了唯一约束和非空约束 NOT NULL #非空约束 UNIQUE #唯一约束 DEFAULT #设置默认值 AUTO_INCREMENT #主键自增 查看表: # 切换表 USE 表名; SHOW TABLE 表名; 删除表: DORP TABLE 表名; 修改表: # 修改字段数据类型 ALTER TABLE t_id MODIFY INT BIGINT; # 修改字段名 ALTER TABLE 表名 CHANGE t_id t_ids; 设置外键: ALTER TABLE 表名 ADD FOREIGN KEY [外键名字] (外键字段) REFERENCES 父表 (主键字段); 数据操作: 插入数据: INSERT INTO 表名(字段1,字段2...) VALUES(value1,value2...); 修改数据

MySQL设置允许用户远程登录

非 Y 不嫁゛ 提交于 2020-04-06 05:12:01
项目中需要连接虚拟机上面的MySQL数据库,但是总是出错,怀疑本机是否有连接远程数据库的权限。 执行命令: mysql > use mysql ; mysql > select host , user from user ; 查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况: mysql-root-state 是的话,就要修改它的host为 % ,表示任意IP地址都可以登录。 mysql > update user set host = '%' where user = 'root' ; 执行完后可能提示error。再 mysql> select host,user from user; 查看下吧。 root对应的host成了 % ,表示可以任意IP地址登录了。 mysql-change-root-state mysql > flush privileges ; 把缓存flush掉,在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表。 MySQL默认在本地localhost登录root用户,然而远程连接却会报错(root@X.X.X.X acess denied) 这里就需要进行配置允许远程连接 方式一: 进入mysql: mysql -uroot -p 运行mysql: use mysql; 开启远程访问权限:

MySql设置外网访问

烈酒焚心 提交于 2020-04-06 03:51:11
mysql的root账户,我在连接时通常用的是localhost或127.0.0.1,公司的测试服务器上的mysql也是localhost所以我想访问无法访问,测试暂停. 解决方法如下: 1,修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看"select host,user from user ;" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user ='root'; mysql>select host, user from user; mysql> flush privileges; 注意:最后一句很重要,目的是使修改生效.如果没有写,则还是不能进行远程连接. 2,授权用户,你想root使用密码从任何主机连接到mysql服务器 GRANT ALL PRIVILEGES ON *.* TO ' root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION; flush privileges; 如果你想允许用户root从ip为192.168.1.104的主机连接到mysql服务器 GRANT ALL PRIVILEGES ON *.* TO ' myuser'@'192.168.1.104'

Linux上搭建MySQL远程服务

和自甴很熟 提交于 2020-04-05 20:52:10
1. 安装MySQL 对于Ubuntu,直接使用apt-get安装,如果是CentOS,则同理使用yum apt-get install -y mysql-server 2. 修改密码 输入mysql命令,直接进入MySQL客户端控制台 root@localhost:~# mysql 更新密码 mysql> update mysql.user set password=password('yourpassword') where user='root'; mysql> flush privileges; 注意如果MySQL的版本是5.7.x以上的话,mysql.user表里面的password字段已经改名为authentication_string,所以update语句要改成: mysql> update mysql.user set authentication_string=password('yourpassword') where user='root'; mysql> flush privileges; 这里yourpassword是想要设置的修改后的密码 3. 设置允许远程连接 3.1 修改配置文件 修改配置文件/etc/mysql/mysql.conf.d,允许远程访问 vim /etc/mysql/mysql.conf.d 将bind-address注视掉

浅说MySQL优化方法

柔情痞子 提交于 2020-04-05 19:05:07
1.优化思路 在数据库的优化上我们有两个方面,一方面是安全,另一方面则是性能. 安全 ,就是要保证数据的可持续性; 性能,则说的就是数据的高性能访问; 2.优化方法 1)选取最适用的字段属性 一般来说,数据库中的表越小,查询执行的效率越快,因此我们可以在创建表的时候将字段竟可能设定的小一点,这样增加了数据库的空间. 另一个方法则是在可能的情况下,尽量把字段设置为非空,这样查询的时候就不用去比较NULL值,从而提升查询速度 2)使用连接查询代替子查询 使用子查询的话数据库需要在内存中先创建出临时表,然后再把临时表用在另一个查询上,子查询可以一次性完成很多逻辑上多个步骤才能完成的SQL操作,这样查询速度不是很快,而采用连接查询的话,MYSQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作. 3)使用联合来代替手动创建的临时表 使用UNION查询,可以把 需要使用临时表的两条或更多的 SELECT 查询合并的一个查询中。在客户端的查询会话结束的时候,临时表会被自动删除,从而保证数据库整齐、高效。使用 UNION 来创建查询的时候,我们只需要用 UNION作为关键字把多个 SELECT 语句连接起来就可以了, 要注意的是所有 SELECT 语句中的字段数目要想同 . SELECT * FROM t_address UNION SELECT * FROM t_area; 4

小巧嵌入式平台“玩转”大型的数据库管理系统

吃可爱长大的小学妹 提交于 2020-04-05 13:54:09
M ySQL是一个关系型数据库管理系统,由瑞典MySQLAB 公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB 应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件。 0 1 ubuntu服务端安装配置 ■ 网络情况介绍 Ubuntu ip:192.168.0.223 (myslq服务端) 开发板 ip:192.168.0.232 (mysql客户端) ■ Ubuntu服务器安装mysql服务 sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功。 0 2 检查mysql的网络服务是否开启 ■ sudo netstat -tap | grep mysql 如果看到有 mysql的socket处于listen 状态则表示安装成功 ■ 本地登陆验证 密码设置是 123456 mysql -h127.0.0.1 -uroot -p123456 -h表示远程主机的ip地址 -u表示选择登陆的用户名