mysql update语句

JDBC连接Mysql参数

时间秒杀一切 提交于 2019-12-07 16:14:42
常用如下: useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true characterEncoding 当useUnicode设置为true,给定编码,常用utf8,默认是:autodetect allowMultiQueries 允许一个statement执行多个用;分割的sql,默认false 使用update或insert 执行多行语句 时必须为true useSSL 连接MySQL 5.5.45+, 5.6.26+ or 5.7.6+默认为true,之前低版本为false useAffectedRows 默认false 此时使用update或insert返回匹配到的行数 改为true 返回实际影响的记录数 serverTimezone 默认CST 但由于CST定义解析混乱 应改为GMT%2B8 或 Asia/Shanghai user 数据库用户名(用于连接数据库) passWord 用户密码(用于连接数据库) autoReconnect 当数据库连接异常中断时,是否自动重新连接? autoReconnectForPools 是否使用针对数据库连接池的重连策略 maxReconnects autoReconnect设置为true时,重试连接的次数 failOverReadOnly

MYSQL面试必读

孤人 提交于 2019-12-07 16:03:36
Mysql 的存储引擎,myisam和innodb的区别。 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用。表锁,不会出现死锁,适合小数据,小并发。 2.innodb是支持事务的存储引擎,合于插入和更新操作比较多的应用,设计合理的话是行锁(最大区别就在锁的级别上),适合大数据,大并发。 数据表类型有哪些 答:MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。 InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。 c. mysql库主从读写分离。 d. 找规律分表,减少单表中的数据量提高查询速度。 e。添加缓存机制,比如memcached,apc等。 f. 不经常改动的页面,生成静态页面。 g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?

MySQL大表优化方案

☆樱花仙子☆ 提交于 2019-12-07 15:07:34
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级 以下,字符串为主的表在 五百万 以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用 TINYINT 、 SMALLINT 、 MEDIUM_INT 作为整数类型而非 INT ,如果非负则加上 UNSIGNED VARCHAR 的长度只分配真正需要的空间 使用枚举或整数代替字符串类型 尽量使用 TIMESTAMP 而非 DATETIME , 单表不要有太多字段,建议在20以内 避免使用NULL字段,很难查询优化且占用额外索引空间 用整型来存IP 索引 索引并不是越多越好,要根据查询有针对性的创建,考虑在 WHERE 和 ORDER BY 命令上涉及的列建立索引,可根据 EXPLAIN 来查看是否用了索引还是全表扫描 应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,否则将导致引擎放弃使用索引而进行全表扫描 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段 字符字段只建前缀索引 字符字段最好不要做主键 不用外键,由程序保证约束 尽量不用 UNIQUE

MySQL存储过程学习笔记

笑着哭i 提交于 2019-12-07 09:07:15
一、基本语法及简单实例 1、创建简单的测试环境 mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> CREATE TABLE t(s1 INT); Query OK, 0 rows affected (0.06 sec) mysql> INSERT INTO t VALUES(5); Query OK, 1 row affected (0.02 sec) 2、选择分隔符 mysql> DELIMITER // 我们一般使用";"作为分隔符,但是在编写存储过程的时候这会带来一些问题,因为存储过程中有许多语句,修改会";"作为分隔符可使用语句"DELIMITER ;//"。 3、创建存储过程 mysql> CREATE PROCEDURE p1() SELECT * FROM t;// Query OK, 0 rows affected (0.08 sec) "CREATE PROCEDURE"即为SQL语句部分,第二部分是过程名"p1"(这里需要注意的是存储过程名对大小写不敏感)。 第三部分 () 是参数列表,通常需要在其中添加参数,这里参数为空,但是"()"必须存在。 "SELECT * FROM t;"是存储过程的主体,注意哦,";"是主体的一部分哦

MYSQL 的Query Cache

一曲冷凌霜 提交于 2019-12-07 07:46:19
MYSQL的Query Cache 当你的数据库打开了Query Cache(简称QC)功能后,数据库在执行SELECT语句时,会将其结果放到QC中,当下一次处理同样的SELECT请求时,数据库就会从QC取得结果,而不需要去数据表中查询。 在这个“Cache为王”的时代,我们总是通过不同的方式去缓存我们的结果从而提高响应效率,但一个缓存机制是否有效,效果如何,却是一个需要好好思考的问题。在MySQL中的Query Cache就是一个适用较少情况的缓存机制。在上图中,如果缓存命中率非常高的话,有测试表明在极端情况下可以提高效率238% [1] 。但实际情况如何? Query Cache有如下规则,如果数据表被更改,那么和这个数据表相关的全部Cache全部都会无效,并删除之。这里“数据表更改”包括: INSERT , UPDATE , DELETE , TRUNCATE , ALTER TABLE , DROP TABLE , or DROP DATABASE 等。 举个例子,如果数据表posts访问频繁,那么意味着它的很多数据会被QC缓存起来,但是每一次posts数据表的更新,无论更新是不是影响到了cache的数据,都会将全部和posts表相关的cache清除。如果你的数据表更新频繁的话,那么Query Cache将会成为系统的负担。有实验表明,糟糕时,QC会降低系统13% [1]

Mysql查询效率优化

不羁的心 提交于 2019-12-07 07:06:43
本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 可以这样查询: select id from t where num=10 union all select id from t where num=20 5.下面的查询也将导致全表扫描: select id from t where name like '%abc%' 若要提高效率,可以考虑全文检索。 6.in 和 not in 也要慎用,否则会导致全表扫描,如: select id

Ghost博客数据库迁移至MySQL

你说的曾经没有我的故事 提交于 2019-12-07 03:14:14
为什么要迁移数据库? 刚刚开始,这个博客是由Ghost + CentOS7 + sqlite3 搭建的。然而自己对于sqlite3不是特别的熟悉,所以决定,将其迁移至MySQL来。但是在迁移的过程中,还不是那么的顺利,就用笔记记录下来吧。 升级阿里云的配置 之前购买的虚拟云主机是最低配置的,1核 + 512M内存。这个配置基本也就能刚好跑跑一个Ghost。因为当时的内存使用率基本就到了90%左右,所以在安装mysql的时候,直接就报错,内存不够,所以,就把当前的云主机升级为了1核 + 1GB内存。费用由原来的每个月30RMB多到了50RMB多,其他厂家的云主机的价格都感觉差不多,阿里的技术我比较信赖,毕竟在11.11这么大并发的情况下,可能抗住。是一个伟大的公司,值得所有人的敬佩。 升级完后,需要在控制台重启机器,配置才会得到更新,其他的方式,介绍说不可以。 安装mysql 按照以前的方式安装mysql竟然不行了,原因是因为系统是CentOS7的。 如何查看系统的相关信息呢? [cyblogs@iZ94tq694y3Z ~]$ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 系统原来是当时买云主机的时候选择的。 回顾一下原来是如何安装mysql on CentOS的 yum install mysql

shell 处理mysql的增删改查

假如想象 提交于 2019-12-07 02:51:45
引言 这几天做一个任务,比对两个数据表中的数据,今天写个shell版本的,这样,在所有linux系列机器上就都可以运行了。 shell是如何操作mysql的? shell操作mysql其实就是通过mysql命令通过参数去执行语句,跟其他程序里面是一样的,看看下面这个参数: -e, --execute=name Execute command and quit. (Disables --force and history file.) 因此我们可以通过mysql -e来执行语句,就像下面这样: mysql -hlocalhost -P3306 -uroot -p123456 $test --default-character-set=utf8 -e "select * from users" 执行之后返回下面结果: 在shell脚本中操作mysql 导出数据 MYSQL="mysql -h192.168.1.102 -uroot -p123456 --default-character-set=utf8 -A -N" #这里面有两个参数,-A、-N,-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题 #-N,很简单,Don't write column names in results,获取的数据信息省去列名称 sql="select * from test

linux下shell执行mysql命令

六月ゝ 毕业季﹏ 提交于 2019-12-07 02:51:31
在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令行的环境,就需要在shell环境中模拟mysql的环境,使用mysql相关命令,本文总结几种shell操作mysql的方法,供大家参考。 方案1 mysql -uuser -ppasswd -e"insert LogTable values(...)" 优点:语句简单 缺点:支持的sql相对简单 方案2 准备一个sql脚本,名字为update.sql,例如: CREATE TABLE `user` ( `id` varchar(36) NOT NULL COMMENT '主键', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '用户密码', `createdate` date NOT NULL COMMENT '创建时间', `age` int(11) NOT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户信息表'; DROP TABLE IF EXISTS `visit_log`; CREATE TABLE

mysql 出现Cannot delete or update a parent row: a...

一笑奈何 提交于 2019-12-07 02:10:06
当在Mysql下删除有一个建有外键的表的数据时可能会报此异常,所以可以启动MySql命令行模式,运行如下的sql语句来关闭外键检测: SET FOREIGN_KEY_CHECKS = 0; 执行你要的操作后把再把外键检测恢复 SET FOREIGN_KEY_CHECKS = 1; 其他相关的有: 关闭唯一性校验 set unique_checks=0; set unique_checks=1; 来源: oschina 链接: https://my.oschina.net/u/150415/blog/103227