mysql
mysql
車輪の唄
atarik@163.com
展开
-
sql 查数据库中时间最新的一条记录
下策——查询出结果后将时间排序后取第一条select * from a where create_time<="2017-03-29 19:30:36" order by create_time desclimit 1这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一条,相当于查询中占...原创 2018-10-19 09:50:16 · 75070 阅读 · 11 评论 -
mysql group by 用法
group by 用法解析group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。某个员工信息表结构和数据如下: id name dept salary edlevel hiredate 1 张三 开发部 2000 3 ...原创 2018-10-22 17:46:30 · 173 阅读 · 0 评论 -
You can't specify target table 'XXX' for update in FROM clause
报错如题,意思大致是:在一条 sql 语句中不能先查出来部分内容,再同时又对当前表作修改。解决方法:给查询加别名,用中间表来实现不是对同一表作操作。如错误定法:UPDATE appbricks_departmentSET rank = '2' WHERE parent_id in (SELECT id FROM appbricks_department WHERE parent_i...原创 2018-11-04 13:20:42 · 1093 阅读 · 0 评论 -
第一范式 第二范式 第三范式 BC范式
第一范式第一范式:所有属性都是不可分割的原子值。 也就是每个属性都是不可再分的。 例如下图就不符合第一范式的要求 实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS),例如SQL Server,Oracle,MySQL中创建数据表的时候,如果数据表的设计不符合这个最基本的要求,那么操作一定是不能成功的。如果我们要在RDBMS中表现表中的数据,就得设计...原创 2018-11-11 21:51:51 · 11764 阅读 · 6 评论 -
mysql 自带工具详解
1.mysql 可以执行sql文本(ddl,dml)2.mysqladmin 用于管理MySQL服务器的客户端, 可以用它来检查服务器的配置和当前的状态,创建并删除数据库等等 mysqladmin status命令的结果显示下面的值:· UptimeMySQL服务器已经运行的秒数。· Threads活动线程(客户)的数目。· Questions服务器启动以来客户的问题(查询...原创 2018-11-23 10:59:26 · 460 阅读 · 0 评论 -
数据库中为什么不推荐使用外键约束
原文: https://www.itcodemonkey.com/article/11317.html外键约束是一种约束,这个约束的存在,会保证表间数据的关系“始终完整”。因此,外键约束的存在,并非全然没有优点。比如使用外键,可以 保证数据的完整性和一致性 级联操作方便 将数据完整性判断托付给了数据库完成,减少了程序的代码量 然而,鱼和熊掌不可兼得。外键是能够保...原创 2018-11-25 13:59:35 · 542 阅读 · 0 评论 -
mysql查看当前数据库锁请求
information_shcema下的三张表(通过这三张表可以更新监控当前事物并且分析存在的锁问题) —— innodb_trx (打印innodb内核中的当前活跃事务) —— innodb_locks ( 打印当前状态产生的innodb锁 仅在有锁等待时打印)—— innodb_lock_waits(打印当前状态产生的innodb锁等待 仅在有锁等待时打印) 1) innodb_t...原创 2018-11-29 16:11:23 · 2716 阅读 · 0 评论 -
数据库表结构同步
1.同步对比工具--workbench首先选择模板数据库生成model, 然后选择database->synchronize with any source..->选择模板数据源(source)->选择要同步的数据源(target)->选择要同步的数据库,点击override target, 一直点击向下执行, 生成变动的sql脚本.或者是选择database-&g...原创 2018-12-04 10:25:05 · 2323 阅读 · 0 评论 -
mysql字段数据类型选择
选择优化的数据类型MySQL支持的数据类型非常多, 选择正确的数据类型对于获得高性能至关重要。更小的通常更好更小的数据类型通常更快, 因为它们占用更少的磁盘、 内存和CPU缓存, 并且处理时需要的CPU周期也更少。简单就好简单数据类型的操作通常需要更少的CPU周期。 例如, 整型比字符操作代价更低, 因为字符集和校对规则(排序规则 )使字符比较比整型比较更复杂。尽量避免NU...原创 2018-11-29 21:59:43 · 1043 阅读 · 0 评论 -
mysql 创建用户和授权
一. 创建用户命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以...原创 2018-11-27 15:27:54 · 262 阅读 · 0 评论 -
mysql5.7 设置默认字符集
vim /etc/my.cnf在[mysqld]下添加 default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci 重启mysql 设置字符集的目的, 使用mysqladmin命令创建数据库时使用默认的字符集,防止出错...原创 2018-12-05 14:15:11 · 4939 阅读 · 1 评论 -
Mysql Workbench 同步model时 VISIBLE 错误问题
sql脚本中,存在VISIBLE 导致sql无法自行这是因为 VISIBLE 适用于 mysql 8.0版本,不适用低于8.0版本的mysqlMySQL Workbench 同步Model时 会生成带有 VISIBLE的sql 导致同步5.7等版本的mysql失败在Preference --> Modeing --> MySQL 在model一栏的 Default Tar...原创 2018-12-03 19:11:25 · 1663 阅读 · 1 评论 -
MySQL提示:The server quit without updating PID file问题的解决办法
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!2、可能进程里已经存在mysql进程解决方法:用命令“ps -ef|grep mysqld”查看是否有mysq...原创 2018-12-10 11:00:15 · 860 阅读 · 0 评论 -
Mysql变量查询及设置
查看全局变量SHOW GLOBAL VARIABLES;查看当前会话下的外键约束SELECT @@FOREIGN_KEY_CHECKS;禁用当前会话下外键约束SET FOREIGN_KEY_CHECKS=0;启动当前会话下外键约束SET FOREIGN_KEY_CHECKS=1;启用全局会话下的外键约束SET GLOBAL FOREIGN_KEY_CHECKS=1;...原创 2018-12-10 17:27:54 · 3207 阅读 · 0 评论 -
mysql配置文件
查看使用的配置文件mysql --help|grep 'my.cnf'输出/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf是按优先级顺序, 依次使用如上配置文件如果配置文件中的内容如下!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/说明配置文件使用的是如上两...原创 2019-01-04 10:14:32 · 1802 阅读 · 0 评论 -
MySQL删除大批量数据
1.删除大表的部分数据一个表有1亿6000万的数据,有一个自增ID。最大值就是1亿6000万,需要删除大于250万以后的数据,有什么办法可以快速删除?看到mysql文档有一种解决方案:http://dev.mysql.com/doc/refman/5.0/en/delete.html If you are deleting many rows from a large tab...原创 2018-10-15 12:08:51 · 795 阅读 · 0 评论 -
批量update语句优化
如果是更新为同样的内容,没啥难度,直接在where里面下功夫就好了,大家都懂,我要说的是针对更新内容不一样的情况首先,先看看网上转载的方法:mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞。mysql 批量更新共有以下四种办法1、.replace into 批量更新replace into ...原创 2018-10-15 12:05:40 · 3286 阅读 · 0 评论 -
Mysql的varchar(20)到底可以存储多少个中文字符
动手测试之:新建表:CREATE TABLE varchar_test (`id` int(11) NOT NULL ,`string` varchar(20)) ENGINE=InnoDBDEFAULT CHARACTER SET=utf8COLLATE=utf8_general_ci 插入表INSERT INTO varchar_test (id, stri...原创 2017-08-27 14:41:35 · 13170 阅读 · 1 评论 -
mysql 事件(定时任务)
DELIMITER $$ALTER DEFINER=`dbmanager`@`%` EVENT `book_info 定时更新` ON SCHEDULE EVERY 1 DAY STARTS '2017-10-16 23:00:00' ON COMPLETION PRESERVE ENABLE DO BEGINDELETE FROM guidancelearn.`book_info`;原创 2017-10-16 17:26:43 · 367 阅读 · 0 评论 -
mysql启动停止
本地数据库使用service mysqld start/stop/restart都没有问题, 但是线上数据库该命令无效, 不是自己安装, 不知道具体的安装方式所以使用如下方式:1.停止mysqladmin -uatarik -p123456 shutdown2.启动which mysqld输出/usr/sbin/mysqld则启动命令为 /usr/sbin/mysq...原创 2019-01-04 11:14:20 · 477 阅读 · 0 评论