摘要:
答:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数 据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可 能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进 行操作前,先向系统发出请求,对其加 阅读全文
posted @ 2020-05-02 21:14
咔啡
阅读(981)
评论(0)
推荐(0)
摘要:
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个 不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤 销。 要同时修改数据库中两个不同表时,如果它们不是一个事务的话,当第一个表修 改完,可能第二个表修改过程中出现了异常而没能修改,此时就只有第二个表依 旧是未 阅读全文
posted @ 2020-05-02 21:13
咔啡
阅读(287)
评论(0)
推荐(0)
摘要:
Datatime:以 YYYY-MM-DD HH:MM:SS 格式存储时期时间,精确到秒, 占用 8 个字节得存储空间,datatime 类型与时区无关 Timestamp:以时间戳格式存储,占用 4 个字节,范围小 1970-1-1 到 2038-1-19, 显示依赖于所指定得时区,默认在第一个列 阅读全文
posted @ 2020-05-02 21:12
咔啡
阅读(162)
评论(0)
推荐(0)
摘要:
事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有 操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所 有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作 失败,则事务将回滚,该事务所有操作的影响都将取消。 事务特性: 1、原子 阅读全文
posted @ 2020-05-02 21:11
咔啡
阅读(2140)
评论(0)
推荐(1)
摘要:
1、选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置 NOTNULL, 例如’省份’、’性别’最好适用 ENUM 2、使用连接(JOIN)来代替子查询 3、适用联合(UNION)来代替手动创建的临时表 4、事务处理 5、锁定表、优化事务处理 6、适用外键,优化锁定表 7、建立索引 8、优 阅读全文
posted @ 2020-05-02 21:10
咔啡
阅读(191)
评论(0)
推荐(0)
摘要:
1、以“%”开头的 LIKE 语句,模糊匹配 2、OR 语句前后没有同时使用索引 3、数据类型出现隐式转化(如 varchar 不加单引号的话可能会自动转换为 int 型) 阅读全文
posted @ 2020-05-02 21:09
咔啡
阅读(1625)
评论(0)
推荐(0)
摘要:
1、设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率。 2、选择合适的表字段数据类型和存储引擎,适当的添加索引。 3、MySQL 库主从读写分离。 4、找规律分表,减少单表中的数据量提高查询速度。 5、添加缓存机制,比如 memcached,apc 等。 6、不经常改动的页 阅读全文
posted @ 2020-05-02 21:07
咔啡
阅读(570)
评论(0)
推荐(0)
摘要:
NUMERIC 和 DECIMAL 类型被 MySQL 实现为同样的类型,这在 SQL92 标准允 许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数 据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定。 例如: salary DECIMAL(9,2) 在这个例 阅读全文
posted @ 2020-05-02 21:06
咔啡
阅读(3384)
评论(0)
推荐(0)
摘要:
1、TINYTEXT 2、TEXT 3、MEDIUMTEXT 4、LONGTEXT 阅读全文
posted @ 2020-05-02 21:05
咔啡
阅读(1292)
评论(0)
推荐(0)
摘要:
在 MySQL 中,使用以下代码查询显示前 50 行: SELECT*FROM LIMIT 0,50; 阅读全文
posted @ 2020-05-02 21:04
咔啡
阅读(363)
评论(0)
推荐(0)
摘要:
BLOB 是一个二进制对象,可以容纳可变数量的数据。TEXT 是一个不区分大小写 的 BLOB。 BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEXT 值不区分大小写。 阅读全文
posted @ 2020-05-02 21:03
咔啡
阅读(1608)
评论(0)
推荐(0)
摘要:
索引是通过以下方式为表格定义的: SHOW INDEX FROM <tablename>; 阅读全文
posted @ 2020-05-02 21:02
咔啡
阅读(424)
评论(0)
推荐(0)
摘要:
它用来压缩 MyISAM 表,这减少了磁盘或内存使用。 MyISAM Static 和 MyISAM Dynamic 有什么区别? 在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT, BLOB 等字段,以适应不同长度的数据类型。 MyISAM Stat 阅读全文
posted @ 2020-05-02 21:01
咔啡
阅读(651)
评论(0)
推荐(0)
摘要:
MyISAM: 第 134 页 共 485 页不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储表的总行数; 一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引 基本一致,但是辅索 阅读全文
posted @ 2020-05-02 21:00
咔啡
阅读(323)
评论(0)
推荐(0)
摘要:
1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。 2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。 3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。 阅读全文
posted @ 2020-05-02 20:59
咔啡
阅读(2421)
评论(0)
推荐(0)
摘要:
先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了 释放。 这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样? 这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释 阅读全文
posted @ 2020-05-02 20:36
咔啡
阅读(772)
评论(0)
推荐(0)
摘要:
答:一般使用 list 结构作为队列,rpush 生产消息,lpop 消费消息。当 lpop 没有 消息的时候,要适当 sleep 一会再重试。 如果对方追问可不可以不用 sleep 呢? list 还有个指令叫 blpop,在没有消息的时候,它会阻塞住直到消息到来。如果对 方追问能不能生产一次消费 阅读全文
posted @ 2020-05-02 20:34
咔啡
阅读(860)
评论(0)
推荐(0)
摘要:
答:使用 keys 指令可以扫出指定模式的 key 列表。 页对方接着追问:如果这个 redis 正在给线上的业务提供服务,那使用 keys 指令会 有什么问题? 这个时候你要回答 redis 关键的一个特性:redis 的单线程的。keys 指令会导致线 程阻塞一段时间,线上服务会停顿,直到指令执 阅读全文
posted @ 2020-05-02 20:32
咔啡
阅读(1642)
评论(0)
推荐(0)

浙公网安备 33010602011771号