摘要: 如果达到设置的上限,Redis 的写命令会返回错误信息(但是读命令还可以正 常返回。)或者你可以将 Redis 当缓存来使用配置淘汰机制,当 Redis 达到内存 上限时会冲刷掉旧的内容。 阅读全文
posted @ 2020-06-16 20:42 咔啡 阅读(803) 评论(0) 推荐(0)
摘要: 使用 keys 指令可以扫出指定模式的 key 列表。 对方接着追问:如果这个 redis 正在给线上的业务提供服务,那使用 keys 指令会 有什么问题? 这个时候你要回答 redis 关键的一个特性:redis 的单线程的。keys 指令会导致线 程阻塞一段时间,线上服务会停顿,直到指令执行完毕 阅读全文
posted @ 2020-06-16 17:15 咔啡 阅读(772) 评论(0) 推荐(0)
摘要: 一般使用 list 结构作为队列,rpush 生产消息,lpop 消费消息。当 lpop 没有 消息的时候,要适当 sleep 一会再重试。 如果对方追问可不可以不用 sleep 呢? list 还有个指令叫 blpop,在没有消息的时候,它会阻塞住直到消息到来。如果对 方追问能不能生产一次消费多次 阅读全文
posted @ 2020-06-16 17:08 咔啡 阅读(353) 评论(0) 推荐(0)
摘要: MyISAM: 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储表的总行数; 一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引 基本一致,但是辅索引不用保证唯一性。 InnoD 阅读全文
posted @ 2020-06-16 16:28 咔啡 阅读(187) 评论(0) 推荐(0)
摘要: 索引是通过以下方式为表格定义的: SHOW INDEX FROM <tablename>; 阅读全文
posted @ 2020-06-16 16:25 咔啡 阅读(214) 评论(0) 推荐(0)
摘要: 理论上 Redis 可以处理多达 232 的 keys,并且在实际中进行了测试,每个实 例至少存放了 2 亿 5 千万的 keys。我们正在测试一些较大的值。任何 list、set、 和 sorted set 都可以放 232 个元素。换句话说,Redis 的存储极限是系统中的可 用内存值。 阅读全文
posted @ 2020-06-16 14:40 咔啡 阅读(1558) 评论(0) 推荐(0)
摘要: 1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 阅读全文
posted @ 2020-06-16 13:55 咔啡 阅读(1545) 评论(0) 推荐(0)
摘要: 1、CONCAT(A, B) – 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。 2、FORMAT(X, D)- 格式化数字 X 到 D 有效数字。 3、CURRDATE(), CURRTIME()- 返回当前日期或时间。 4、NOW() – 将当前日期和时间作为一个 阅读全文
posted @ 2020-06-16 13:48 咔啡 阅读(522) 评论(0) 推荐(0)
摘要: 以下是 MySQL_fetch_array 和 MySQL_fetch_object 的区别: MySQL_fetch_array() – 将结果行作为关联数组或来自数据库的常规数组返回。 MySQL_fetch_object – 从数据库返回结果行作为对象。 阅读全文
posted @ 2020-06-16 10:48 咔啡 阅读(518) 评论(0) 推荐(0)
摘要: 在 MySQL 中,使用以下代码查询显示前 50 行: SELECT*FROM LIMIT 0,50; 阅读全文
posted @ 2020-06-16 10:36 咔啡 阅读(166) 评论(0) 推荐(0)
摘要: SQL 标准定义的四个隔离级别为: 1、read uncommited :读到未提交数据 2、read committed:脏读,不可重复读 3、repeatable read:可重读 4、serializable :串行事物 阅读全文
posted @ 2020-06-16 10:27 咔啡 阅读(891) 评论(0) 推荐(0)
摘要: NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。 CURRENT_DATE()仅显示当前年份,月份和日期。 阅读全文
posted @ 2020-06-16 10:25 咔啡 阅读(1134) 评论(0) 推荐(0)
摘要: 1、TINYTEXT 2、TEXT 3、MEDIUMTEXT 4、LONGTEXT 阅读全文
posted @ 2020-06-16 10:21 咔啡 阅读(438) 评论(0) 推荐(0)
摘要: 字符串类型是: 1、SET 2、BLOB 3、ENUM 4、CHAR 5、TEXT 阅读全文
posted @ 2020-06-16 10:17 咔啡 阅读(509) 评论(0) 推荐(0)
摘要: 最好是按照以下顺序优化: 1、SQL 语句及索引的优化 2、数据库表结构的优化 3、系统配置的优化 4、硬件的优化 详细可以查看 阿里 P8 架构师谈:MySQL 慢查询优化、索引优化、以及表等优化 总结 阅读全文
posted @ 2020-06-16 10:08 咔啡 阅读(246) 评论(0) 推荐(0)
摘要: 任何标准表最多可以创建 16 个索引列。 阅读全文
posted @ 2020-06-16 10:06 咔啡 阅读(210) 评论(0) 推荐(0)
摘要: 事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有 操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所 有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作 失败,则事务将回滚,该事务所有操作的影响都将取消。 事务特性: 1、原子 阅读全文
posted @ 2020-06-16 10:00 咔啡 阅读(906) 评论(0) 推荐(0)
摘要: 1、读写分离 2、分段加锁 3、减少锁持有的时间 4.多个线程尽量以相同的顺序去获取资源 不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大锁。 阅读全文
posted @ 2020-06-16 09:57 咔啡 阅读(277) 评论(0) 推荐(0)
摘要: SQL 注入产生的原因:程序开发过程中不注意规范书写 sql 语句和对特殊字符进 行过滤,导致客户端可以通过全局变量 POST 和 GET 提交一些 sql 语句正常执行。 防止 SQL 注入的方式: 开启配置文件中的 magic_quotes_gpc 和 magic_quotes_runtime 阅读全文
posted @ 2020-06-16 09:53 咔啡 阅读(517) 评论(0) 推荐(0)
摘要: 字段类型优先级: 整形>date,time>enum,char>varchar>blob,text 优先考虑数字类型,其次是日期或者二进制类型,最后是字符串类型,同级别得 数据类型,应该优先选择占用空间小的数据类型 阅读全文
posted @ 2020-06-16 09:48 咔啡 阅读(205) 评论(0) 推荐(0)