使用 root 或者其他有权限的账号登录mysql。 如果没有创建,先创建要使用的数据库: create database `test`; 创建一个新用户并设置密码: create user 'test'@'localhost' identified by '123456'; 赋予用户权限: grant all on test.* to 'test'@'localhost'; 其中all表示所有权限,test.*表示test数据库的所有表。 grant命令在用户不存在的时候回自动创建,所以... 阅读全文>>
在MySQL优化中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素。 explain语句对SQL语句进行优化少不了使用explain分析SQL语句。下面先来说说怎么使用explain语句。 explain语法explain语法比较简单,只需要在你要分析的SQL语句前面加上explain即可,如: explain select id,name from tb_user; explain语句输出的每一行为对一个语句的分析,来看看每行有哪些输出: mysql> explain... 阅读全文>>
索引对于加快查询是非常重要的,合理使用索引能够显著提高查询速度。 MySQL中索引的实现MySQL中索引的实现技术分两种:B-Tree索引和Hash索引。 B-Tree索引B-Tree索引使用B+树实现。B+树一种多路查找树(如下图),是通过二叉查找树,再由平衡二叉树,B树(又名B-树)演化而来的,B+树中的B不是代表二叉(binary),而是代表平衡(balance),因为B+树是从最早的平衡二叉树演化而来,但是B+树不是一个二叉树,是多叉树。 Hash索引Hash索引的查找速度理论上是O(... 阅读全文>>
定长与变长分离所谓定长与变长分离是指:将表中固定长度的字段和可变长度的字段分开,将他们放在不同的表中。 固定长度类型:整型、浮点型、时间和日期型、enum、set、文本中char型可变长度类型:除char外的文本型、blob 为什么要这么做呢?如果一个表中的字段都是固定长度的字段,那么每行记录的长度都是固定的(fixed),这样如果想找到第N行的数据位置,直接使用N*RowSize即可,访问速度很快。 所以建议将核心字段设置为固定长度, 而变长字段,适合单放一张表, 使用主键与核心表关联起来。 ... 阅读全文>>
以前只知道索引可以加快查询速度,而具体为什么会加速快速,对于多列索引也不清楚,也没有用过多列索引,今天了解了一下。 多列索引多列索引是指定多个列组合为一个索引,MySQL将会将多个列的值组合计算后构建索引表。使用多列索引要比使用多个单列索引要快得多。 为什么这么说呢?因为当一个SQL语句中出现多个索引字段时候,它并不能每个索引都能得上,实际上它也只能使用其中一个单列索引去查找(MySQL会选择最精确的那个索引),为什么?我们可以把索引类比成一本书的目录,都是用来快速查找我们想要的内容的。我们小学... 阅读全文>>
MySQL是PHP中开发比不可少的,学习Linux下安装MySQL也是必须的,今天在这里总结一下。注意这里是5.5版本的,5.6及以上安装有一些区别。 下载MySQL安装包打开官网:https://dev.mysql.com/downloads/mysql/,选择你想要安装的版本,我这里选择的5.5版本: 点击“Download”,进入下载页,点击“No thanks, just start my download.”下载,然后复制下载链接,使用wget下载: cd /usr/local/src... 阅读全文>>
MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面最多。