想要Freestyle?先要遵守 MySQL 这十大铁律!

superZS    数据库    999+ 次    2017-09-18 04:41:29


在工作中作为DBA的我们,可能也会需要面对开发人员各种 Freestyle 的要求,但是他们是否知道在操作数据库的时候,需要注意哪些事项呢?


今儿带着大家简单聊聊 MySQL 数据库的开发行为规范,十大铁的纪律。对DBA老铁们是一种帮助,对开发人员也是一种学习。


1. 创建的表要使用 innodb 存储引擎表

现在基本上大部分业务都是 innodb 存储引擎,MySQL 8.0 开始,彻底不再使用 myisam。每张表都要包含一个自增的主键 id。


2. 数据类型的选择上,要秉着越简单越好,越小越好的原则。

建议使用 int 来存储 ipv4 的类型,可以通过函数转换。金钱类的字段也可以存储为 int 类型,用分做单位就可以了。

时间类型可以采用 datetime,它比 tiemstamp 可用范围大,存储空间也从原来的 8 字节,降到了 5 字节,性能上也不错。

mysql> select inet_aton('192.168.56.132');
+-----------------------------+
| inet_aton('192.168.56.132') |
+-----------------------------+
|         3232249988          |
+-----------------------------+ 
mysql> select inet_ntoa(3232249988);
+-----------------------+
| inet_ntoa(3232249988) |
+-----------------------+
| 192.168.56.132        |
+-----------------------+
1 row in set (0.00 sec)

3. 库名、表名、字段名必须使用小写字母,采用“_“分割

MySQL 数据库中,通过参数 lower_case_table_names 来区分表名的大小写 默认为 0,代表大小写敏感。如果是 1,大小写不敏感,以小写存储。

4. 不建议使用 ENUM 类型,使用 TINYINT 来代替。

也不建议使用大数据类型的字段如text或者blob出现在业务表中。


5. 表字符集使用 utf8,必要时可申请使用 utf8mb4 字符集。

它的通用性比 gbk,latin1 都要好。utf8 字符集存储汉字占用 3 个字节,如果遇到表情存储的要求,就可以使用 utf8mb4


6. select 查询表的时候只需要获取必要的字段,避免使用 select *。

这样可以减少网络带宽消耗,还有可能利用到覆盖索引


7. 所有字段定义中,默认都加上 not null 约束,避免出现 null。

在对该字段进行 select count() 统计计数时,可以让统计结果更准确,因为值为 null 的数据,不会被计算进去的。


8. 创建索引的时候不要在低基数列上建立索引,像 sex、status 这种字段上面。

要通过索引的选择性来判断 select count(distinct col1)/count(*) from table_name; 越接近 1,证明选择性越高,越适合创建索引。一般情况下,单表索引数量不要超过 4-5 个范围。


9. SQL语句中,尽量避免出现 or 子句

这种判断的子句可以让程序自行完成,不要交给数据库判断。也要避免使用 union,尽量采用 union all,减少了去重和排序的工作。


10. 时时做好监控工作,经常对线上 sql 语句,进行在线捕获进行分析。

可以利用 percona-toolkit 工具。


目前先写这么多,欢迎大家及时补充,其实好多工作都需要 DBA 和开发人员密切配合。新的业务要上线,DBA 就要参与到业务中,配合开发一起建表建模。我们只有一个目的,就是更舒服得工作,挣更多的钱,那为啥不能改变一下我们不好的工作习惯呢。工作中不是你想怎么着,就怎么着!继续努力吧!


转载地址:http://sumongodb.blog.51cto.com/4979448/1965216

如果你觉得本篇文章对您有帮助,请打赏作者

上一篇: laravel Eloquent操作(二)

下一篇: PHP 生成毫秒时间戳

最新评论

小天天天天 回复:666

2017-10-11 16:07:24 回复


小天天天天 回复:mysql优化干货[em_62]

2017-09-18 13:29:15 回复


是他是他就是他 回复:不错不错!刚搜索问题就找到这片文章了,博主棒棒棒![em_63][em_13]

2017-09-18 10:03:12 回复


热门文章

最新评论

网站数据

网站文章数:481

今日UV/PV/IP:0/0/0

昨日UV/PV/IP:26/29 /25

TOP