
MySQL
文章平均质量分 55
koastal
这个作者很懒,什么都没留下…
展开
-
MySQL中的存储引擎
MySQL数据库常用的四个存储引擎的特点:原创 2016-02-13 16:03:17 · 323 阅读 · 0 评论 -
Discuz数据库引擎转换
MyISAM与InnoDB的对比 https://www.biaodianfu.com/mysql-myisam-innodb.htmlMyISAM的读取性能要比InnoDB好一些,但这略微的优势远比不上InnoDB的行级锁和事务操作等特性。MySQL从5.6开始,将InnoDB作为默认的数据库引擎,因此除非需要使用MyISAM的特有功能,都应该使用InnoDB数据库引擎。Discuz论坛中的帖子原创 2017-07-09 01:18:23 · 1889 阅读 · 0 评论 -
mysql中的affected_rows
在操作mysql语句时,有时需要通过affected_rows来判断语句执行的情况。例如在事务操作中,就可以通过affected_rows来判断事务是否执行成功,以进一步执行事务的提交或者回滚操作。对于SELECT操作,mysql_affected_rows()等价于mysql_num_rows(),即查询结果的行数,但是显示使用mysql_num_rows()更加合适。因此mysql_affect原创 2017-07-08 00:41:54 · 79257 阅读 · 1 评论 -
在线答题系统的设计
系统说明共100道不定项选择题,存储在MySQL数据表(ques)中每个考生的题目顺序不一样150人同时答题和交卷系统设计时间同步要求考生在同一时间进行交卷,就要统一时间。因此我们以服务器时间为准,在考生登录时获取服务器时间作为开始时间。打乱题目顺序使用mysql中的by rand()方式打乱题目顺序,其中rand种子是考生的考号。可以保证每个考生的题目顺序是不同的,但是又能保证自己题目的顺原创 2017-01-08 13:53:44 · 13241 阅读 · 3 评论 -
Redis进行数据排序
大学时做过一个在线答题系统,考生在规定时间内作答100道不定项选择题,考试结束后系统自动算分。因为很多考生同时作答,答案都需要往同一个数据表里面写,会因为数据表被锁而导致响应速度过慢。因此,采用Redis缓存技术将考生的答题信息记录在服务器内存中,在考试结束之后再写入到MySQL数据库中。当时在设计系统时,计算考生分数并排名是在数据写入到MySQL数据库之后进行的。也就是说需要将考生的答题记录取出,原创 2017-01-07 23:46:00 · 6522 阅读 · 0 评论 -
MVC中集成medoo数据库框架
这段时间实习的时候,我一直在使用一个php的MVC框架,想着有时间自己也写一个简单的MVC框架,以加深理解。MVC构架中,M是Model层,功能是从数据库中读取数据库,以及向数据库中写入数据库;V是View层,功能是展示从数据库中读取到的数据,以及收集数据库写入数据库;C是Controller,功能是进行数据处理,因为一般情况下,从数据库中读取的数据是不能直接展示的,从view层得到的数据也不能直接原创 2016-05-19 15:02:39 · 1992 阅读 · 0 评论 -
MVC中使用smarty模板
Smarty模板的使用点击这里项目展示:基本思路:下载smarty源代码,解压得到libs文件夹,然后重命名为smarty,存放到项目的libs目录下。编写mySmarty.php,在该文件中完成对smarty模板的配置。另Controller继承自mySmarty类,这样就可以在控制器中方便的使用smarty了。相关代码:mySmarty.php<?php/** * Created by原创 2016-05-18 14:46:07 · 2284 阅读 · 0 评论 -
mysql rand函数种子的使用技巧
今天解决了一个困扰了我好久的问题,中午刚睡醒,有时间,于是写篇文章记录下。事情是这样的,在大四的时候做过一个在线答题系统,在当时遇到了一个问题。问题描述:题目共有100道,每道题都需要考生作答,不同考生作答的题目顺序应该是不同的。问题分析:不同考生的100道题的顺序应该是打乱的,不同考生的题目的顺序是不一样的。对于同一个考生 ,题目的顺序应该是确定的。类比我们现实中的纸质考试方式,不同同学拿到的试卷原创 2016-04-21 14:39:41 · 2836 阅读 · 0 评论 -
基于PHP的sso单点登录实例
基本思路:单点登录,需要一个授权中心,即上图中的auth.com。然后每个站点,还应该有自己的登录操作和登出操作。bbs.com: 登入: bbs.com/index.php/login/login 登出: bbs.com/index.php/login/logoutspace.com 登入: space.com/index.php/login/login 登出: space.com/ind原创 2016-05-29 17:36:06 · 1220 阅读 · 0 评论 -
通过session_id限制仅一个用户登录
需求: 我们有的时候,希望一个账户,仅在一个地方登录。即,在别的地方登录该账户时,当前用户会被自动注销。思路:用户数据表admin id name password session_id 1 root 63a9f0ea7bb98050796b649e85481845 3olcdjkj5jjaq2u9t30mbuna96核心代码:indexController.cla原创 2016-05-29 00:19:05 · 5933 阅读 · 0 评论 -
无限级分类技术
数据库表创建item表CREATE TABLE `item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `parentid` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8表中数据:原创 2016-02-27 13:36:11 · 453 阅读 · 0 评论 -
INSERT……SELECT批量插入数据
假设我们现在有表格stu_grades:我们现在想把课程的信息单独提取出来,所以创建课程信息表course:CREATE TABLE course ( id INT PRIMARY KEY AUTO_INCREMENT, teacher VARCHAR(10) NOT NULL )DEFAULT CHARSET=utf8;然后我们想将stu_grades中的cid和teach原创 2016-02-27 11:24:11 · 5159 阅读 · 0 评论 -
子查询
学生成绩表stu_gradesCREATE TABLE `stu_grades` ( `id` int(11) NOT NULL AUTO_INCREMENT, `grade` int(11) NOT NULL, `sid` int(11) NOT NULL, `cid` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_I原创 2016-02-27 10:48:03 · 387 阅读 · 0 评论 -
外键的使用
外键主要用到的语句是:FOREIGN KEY(sid) REFERENCES TO stu_info(id) ON DELETE CASCADE;示例: 表1,stu_info表示学生信息;表2,stu_grades表示学生的考试成绩。当学生毕业之后,相关学生信息从stu_info删除之后,stu_grades中相关学生的成绩的记录也应该删除。创建stu_info表CREATE TABLE stu原创 2016-02-26 23:52:30 · 502 阅读 · 0 评论 -
修改数据表
修改表名ALTER TABLE table_name RENAME new_name;修改列名/定义ALTER TABLE table_name CHANGE COLUMN old_name new_name column_definametion [FIRST|AFTER col_name];原创 2016-02-26 22:20:05 · 342 阅读 · 0 评论 -
添加、删除约束
添加主键约束 ALTER TABLE user ADD CONSTRANIT PRIMARY KEY (id); 添加唯一约束ALTER TABLE user ADD UNIQUE KEY (name);添加外键约束ALTER TABLE user ADD FOREIGN KEY (pid) REFERENCE TO provinces(id);添加默认值ALTER TABLE user ALTE原创 2016-02-26 22:06:23 · 614 阅读 · 0 评论 -
添加、修改、删除列操作
语法添加列ALTER TABLE table_name ADD COLUMN column_name column_defination;ALTER TABLE table_name ADD COLUMN column_name column_defination AFTER id;删除列ALTER TABLE table_name DROP COLUMN column_name;修改列ALTER原创 2016-02-26 21:43:17 · 504 阅读 · 0 评论 -
通过设置AUTO_INCREMENT设置自增起始值
我们在phpmysqliadmin管理工具创建数据库时,如果设置了自增主键,则从1开始,步长为1。但是有时候,比如我们创建员工编号或者学生证号的时候,希望能够从某个起始值开始自增。建表时设置自增起始值CREATE TABLE student_info( id INT PRIMARY KEY AUTO_INCREMENT, sex TINYINT NOT NULL, name原创 2016-02-26 16:52:05 · 13004 阅读 · 1 评论 -
mysql数据库主从复制
mysql数据库设置读写分离,可以使对数据库的写操作和读操作在不同服务器上执行,提高并发量和相应速度。实验环境master: 192.168.126.134 ubuntu64slave: 192.168.126.135 ubuntu64主从服务器的mysql数据库采用以下命令安装:apt-get install mysql-serv原创 2016-08-26 17:08:32 · 1227 阅读 · 0 评论