![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mysql
文章平均质量分 65
略
扁豆的主人
进无止境,不忘初衷;坚持不懈,乐在其中。
展开
-
mysql性能分析工具
explaintype:访问类型,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL,一般来说,至少达到range级别,最好能达到ref。key:实际使用的索引,如果为NULL,则没有使用索引。很少的情况下,MY原创 2022-05-25 11:13:24 · 415 阅读 · 0 评论 -
mysql安装
1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2、然后进行repo的安装rpm -ivh mysql57-community-release-el7-9.noarch.rpm执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repomy.原创 2021-10-27 10:50:04 · 191 阅读 · 0 评论 -
Mysql存储引擎
MyISAM(5.0 后默认)1)不支持事务2)表锁3)不支持外键4)主键不必须5)支持全文索引6)可压缩存储,存储空间较省。更新性能不佳,因为一个更新操作就会阻塞其它操作,适合于不需要事务的查询类应用。InnoDB(5.5后默认)1)支持事务2)行锁3)支持外键4)主键是必须的5)5.6版本开始支持全文索引6)需要更多的内存和存储空间...原创 2019-04-03 13:12:34 · 115 阅读 · 0 评论 -
Mysql性能优化
数据库设计存储引擎,没有特殊情况,尽量选择InnoDB引擎,支持事务,行锁。 单表大小,控制单表数据量在500万以内,另外不要在库中存储图片。 冷热分离,将不常使用的数据从主表中分离出去,保证主表的访问速度。 字段冗余,适当冗余字段,减少表连接。 表字符集,选择utf8类型。数据类型设计尽量选择短小的数据类型,避免使用TEXT、BLOG类型,可分离到扩展表中去。 尽量避免ENU...原创 2019-05-30 11:40:40 · 130 阅读 · 0 评论 -
mysql为什么用B+树
为什么不用哈希无论读还是写,哈希都比树更快,那为什么索引结构要选用树型结构呢?因为对于分组、排序、比较,哈希型索引的时间复杂度会退化到O(n),而这类查询实际业务中会经常出现。为什么不用二叉树二叉树每个节点只分两个叉,每个节点只能存储一个记录,随着数据量的增大,树的高度会显著增高,而的高度越高,查询速度就越慢。而B树,每个节点可分多个叉,且可存储多条记录,因此树的高度降低了,它可...原创 2019-04-05 12:29:55 · 1754 阅读 · 1 评论 -
MVCC多版本并发
共享锁和排它锁shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock)读锁是共享的,不会阻塞其他读锁读数据,但会阻塞其他写锁;写锁是排他的,一个写锁会阻塞其他锁,不管是读锁还是写锁。共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。排他锁.原创 2021-07-28 16:49:35 · 43 阅读 · 0 评论 -
数据库设计和研发规范
一. 基础规范所有表都需要添加注释使用comment从句添加表和列的备注,从一开始就做好数据字典维护。单表数据量建议控制在500万以内过大会给备份和恢复带来困难,可用历史数据归档(用于日志数据),分库分表(用于业务数据)等手段来控制数据量大小。不在数据库中存储图、文件等二进制数据图或文件IO操作耗时,通常存储于文件服务器,数据库只存储文件地址信息。尽量冷热数据分离,减小表的宽度把不常用且占宽大的字段从热表中分离可独立存储,每一行数据大小不超过65535字节。...原创 2021-07-26 18:12:08 · 373 阅读 · 0 评论 -
Mysql如何修改登录密码
步骤: 1. KILL掉系统里的MySQL进程; 2. 用以下命令启动MySQL,以不检查权限的方式启动; mysqld_safe -skip-grant-tables &或者用 service mysql start 来启动 3. 然后用空密码方式使用root用户登录 MySQL; mysql -u root 4. 修改root用户的密码; mysql> update mysql.user set password=P...原创 2020-11-11 17:46:25 · 166 阅读 · 0 评论