sql数据库搭建
SQL数据库搭建这件事,据库说穿了就是搭建三步:装软件、建库、据库建表。搭建但真动起手来,据库坑比想象中多。搭建我见过太多人卡在第一步——装了个MySQL,据库结果连不上,搭建折腾半天发现是据库端口被占,或者密码策略太严。搭建 先别急着敲命令。据库你得想清楚用哪个数据库。搭建MySQL、据库PostgreSQL、搭建SQL Server,据库各有各的脾气。个人项目或小公司,MySQL够用,生态好,网上随便一搜都是答案。要是涉及复杂查询和地理数据,PostgreSQL更香。至于SQL Server,除非你公司已经买了微软的授权,否则别自找麻烦。 装完数据库,第一件事不是建表,而是建一个专用账号。别用root直接操作生产库,那是给自己埋雷。我见过有人图省事,root密码设成123456,结果被扫描工具盯上,数据库被勒索,数据全没了。专用账号权限最小化,只给需要的库和表的权限,这是底线。 建库就一条命令: 建表才是真正考验设计能力的地方。别一上来就堆字段。先想清楚业务逻辑——这张表要回答什么问题?比如用户表,核心字段就是id、用户名、密码哈希、创建时间。别把手机号、邮箱、地址全塞进去,那是另一张表的事。字段类型也得抠细节:年龄用TINYINT,别用INT,省空间;金额用DECIMAL(10,2),别用FLOAT,浮点误差会让你对账对到怀疑人生。 主键用自增INT还是UUID?小项目随意,但并发一高,自增主键在分布式场景下会撞车。UUID虽然丑,但全局唯一,不用协调。不过UUID做主键有个毛病——索引碎片化。折中方案是雪花算法生成有序ID,但那是后话,初学者别纠结。 索引别贪多。每个索引都是写操作的负担。我见过一张表建了十几个索引,查询是快了,但每次插入都慢得像蜗牛。原则是:WHERE子句里常用的字段建索引,JOIN的关联字段建索引,其他别碰。复合索引要注意顺序,最左前缀原则,否则索引白建。 外键?能不用就不用。外键保证数据一致性,但代价是性能损耗和死锁风险。互联网公司普遍不用外键,靠应用层逻辑保证。你要是做个内部小工具,用外键也无妨,但别指望它帮你兜底。 最后说备份。数据库搭建完成那一刻,就该把备份脚本写好。crontab每天凌晨跑一次mysqldump,备份文件扔到另一台机器。别把备份存在同一台服务器上——磁盘坏了,备份跟着陪葬。恢复演练也得做,别等到数据丢了才第一次尝试还原,那时候哭都来不及。 搭建数据库不是写完建表语句就完事。连接池配置、慢查询日志、监控告警,这些才是让系统跑得稳的关键。但那是另一篇文章的事。先把基础打牢,别急着飞。CREATE DATABASE mydb CHARACTER SET utf8mb4;。注意字符集,别用默认的latin1。中文乱码的坑,十有八九是字符集没设对。utf8mb4能存emoji,兼容性最好,别犹豫。