MySql数据库开发规范

2017-09-24
阅读 2 分钟
4.7k
根据之前写的文章内容,结合网上找到的资料,整理出下面的MySql数据库规范作为参考。 数据库命名规范 所有的数据库对象名称(包括库名、表名、列名等等)必须以小写字母命名,每个单词之间用下划线分割 所有的数据库对象名称禁止使用MySQL保留关键字 数据库对象的命名要能做到见名知意,并且不要超过32个字符 数据库中用到...

MySql查询性能优化

2017-09-24
阅读 4 分钟
23.4k
在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。例如在处理分页时,应该使用LIMIT限制MySql只返回一页的数据,而不是向应用程序返回全部数据后,再由应用程序过滤不需要的行。当一行数据被多次使用时可以考虑将数据行缓存起来,避免每次使用都要到MySql查...

MySql索引

2017-09-03
阅读 7 分钟
11.4k
索引(key)是存储引擎用于快速找到记录的一种数据结构。它和一本书中目录的工作方式类似——当要查找一行记录时,先在索引中快速找到行所在的位置信息,然后再直接获取到那行记录。在MySql中,索引是在存储引擎层而不是服务器层实现的,所以不同的存储引擎对索引的实现和支持都不相同。

MySQL数据类型选择

2017-08-26
阅读 3 分钟
5.5k
当一个列可以选择多种数据类型时,应该优先选择数字类型,其次是日期或二进制类型,最后是字符类型。越简单的数据类型,需要的处理资源就越少。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。因为在数据库中,数据处理是以页为单位的,每个页存储的数据量是一定的(Innodb一页是16K),列的长度越小,单页能...

事务日志

2017-08-20
阅读 1 分钟
4.5k
事务日志在书中只有一小节的内容,但是感觉对于理解MySQL的许多机制比较重要,所以记录一下。为了提高事务中更新操作的效率,MySQL中的大多数存储引擎都实现了事务日志。使用事务日志,当有更新操作时,存储引擎只将数据在内存中的copy修改成更新后的值,但并不将数据的更新刷新的硬盘,只是将更新操作的行为记录到硬盘...

MySQL并发控制

2017-08-19
阅读 2 分钟
5.5k
锁分为读锁和写锁两种,也称作共享锁和排他锁。因为多个读操作同时进行是不会破坏数据的,所以读锁是共享的,多个读操作可以同时进行,互不干扰。为了防止多个写操作共同执行破坏数据,写锁是排他的,一个写锁会阻塞其它的写锁和读锁,进而保证同一资源在任何时刻只有一个写操作在执行,并防止其它用户读取正在写入的该...

MySQL三层逻辑架构

2017-08-15
阅读 1 分钟
11.7k
第一层负责连接管理、授权认证、安全等等。每个客户端的连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名和密码的方式进行认证,也可以通过SSL证书进行认证。登录认证通过后,服务器还会验证该客户端是...