mirror of
https://github.com/roundcube/roundcubemail.git
synced 2026-03-21 23:36:58 +01:00
- Rewritten messages caching (merged devel-mcache branch):
Indexes are stored in a separate table, so there's no need to store all messages in a folder Added threads data caching Flags are stored separately, so flag change doesn't cause DELETE+INSERT, just UPDATE - Partial QRESYNC support - Improved FETCH response handling - Improvements in response tokenization method
This commit is contained in:
@@ -33,33 +33,6 @@ CREATE TABLE `users` (
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `messages`
|
||||
|
||||
CREATE TABLE `messages` (
|
||||
`message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`del` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`subject` varchar(255) NOT NULL,
|
||||
`from` varchar(255) NOT NULL,
|
||||
`to` varchar(255) NOT NULL,
|
||||
`cc` varchar(255) NOT NULL,
|
||||
`date` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`size` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`headers` text NOT NULL,
|
||||
`structure` text,
|
||||
PRIMARY KEY(`message_id`),
|
||||
CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `created_index` (`created`),
|
||||
INDEX `index_index` (`user_id`, `cache_key`, `idx`),
|
||||
UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache`
|
||||
|
||||
CREATE TABLE `cache` (
|
||||
@@ -76,6 +49,55 @@ CREATE TABLE `cache` (
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_index`
|
||||
|
||||
CREATE TABLE `cache_index` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_thread`
|
||||
|
||||
CREATE TABLE `cache_thread` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_messages`
|
||||
|
||||
CREATE TABLE `cache_messages` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
`seen` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`answered` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`forwarded` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`flagged` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`mdnsent` tinyint(1) NOT NULL DEFAULT '0',
|
||||
CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`, `uid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `contacts`
|
||||
|
||||
CREATE TABLE `contacts` (
|
||||
|
||||
Reference in New Issue
Block a user