-
一、为什么要学习并发编程
1.发挥多处理的强大能力 2.建模的简单性 3.异步事件的简化处理 4.响应更加灵敏的用户界面
二、并发的缺点
1.安全性问题
多线程环境下 多个线程共享一个资源 对
-
左关联的一条SQL语句(mysql):
SELECT *
FROM b
LEFT JOIN a
ON a.trans_id=b.id
AND a.target_col = 'date'
WHERE a.target_col IS NULL
说明:b和a是一对多的关系。
初看该语句,发现条件中既是a.target_col='date'又是a
-
在将测试库的新增表通过Navicat向阿里云的MySql数据库复制后,发现前端页面请求查询失败。目标数据库的默认排序规则是SELECT
CONCAT(
'ALTER TABLE `',
TABLE_NAME,
'` MODIFY `',
CO
-
背景我相信大家在数据库优化的时候都会说到索引,我也不例外,大家也基本上能对数据结构的优化回答个一二三,以及页缓存之类的都能扯上几句,但是有一次阿里P9的一个面试问我:你能从
-
MySQL 5.7 增加了 JSON 数据类型的支持,在之前如果要存储 JSON 类型的数据的话我们只能自己做 CREATE TABLE user (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
info JSON
);表创建成功之
-
1.下载mysql的yum源https://dev.mysql.com/downloads/repo/yum/2.安装yum源shell> sudo yum localinstall platform-and-version-specific-package-name.rpm3.选择mysql版本shell> yum repolist all | grep mysql
shell> sudo yum-config-manager --disa
-
我一直在不断地更新对“java多线程同步的原子性”和“数据库事务的原子性”的理解。1. synchronized代码块的原子性我认为,java的原子性是指,为了确保多线程读写共享数据时的安全性,必须根
-
【golang学习网.com原创稿件】老张我在刚开始学习数据库的时候,没少走弯路。经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决问题的办法。跟无头苍蝇一样,会不加
-
一、MySQL 获得当前日期时间 函数
1.1 获得当前日期+时间(date + time)函数:now()
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2008-08-08 22:20:46 |
+---------------------+
除了 now()
-
MySQL 8中的隐藏、降序、函数索引
一、隐藏索引
1.隐藏索引概述
MySQL 8.0开始支持隐藏索引(invisible index),不可见索引。
隐藏索引不会被优化器使用,但仍然需要进行维护。
应用场
-
1、查看当前数据库支出的存储引擎
方法1:
mysql> show engines \G;
*************************** 1. row ***************************
Engine: InnoDB
Support: YES
Comment: Supports transactions, row-level locking, and foreig
-
用一条带库存条件的 UPDATE 实现最小扣库存接口,避免先查后改造成超卖;同时说明受影响行、事务边界与死锁重试。
-
MySQL的查询缓存已废弃,是否还值得使用取决于版本和业务场景。1.查询缓存可缓存SELECT语句及其结果,提升读多写少场景的性能;2.但一旦表有写入操作,相关缓存会被清空,高并发写入时易引发性能问题;3.MySQL5.7.20开始标记为废弃,8.0彻底移除,建议使用Redis等外部缓存替代;4.启用时需配置query_cache_type和query_cache_size参数,并合理控制内存大小;5.可通过Qcache_hits、Com_select、Qcache_inserts等状态变量判断缓存命中情
-
MySQL主从复制的搭建步骤包括:一、主库开启二进制日志并创建复制账号;二、获取主库数据并导出;三、配置从库并启动复制;四、常用参数包括server-id、log-bin、relay-log等;五、常见问题如延迟、连接失败需逐一排查。具体操作为:1.在主库配置文件中设置server-id=1和log-bin=mysql-bin;2.创建repl用户并授权;3.锁表后执行mysqldump导出数据并解锁;4.从库配置server-id=2,导入数据后通过CHANGEMASTER命令连接主库并启动复制;5.常
-
临时表是MySQL中用于临时存储数据的结构,仅对当前连接可见,断开后自动消失。创建方法是在CREATETABLE语句前加TEMPORARY关键字,例如:CREATETEMPORARYTABLEtemp_users(idINTPRIMARYKEY,nameVARCHAR(50));也可通过CREATETEMPORARYTABLE...ASSELECT方式从现有表复制数据。适用场景包括:1.存储中间结果简化复杂查询;2.避免重复计算提升效率;3.批量处理前的数据清洗;4.多SQL语句间共享数据。使用时需注意: